2012-03-04 10 views
1

я пытаюсь установить соединение, используя следующий код в приложении UCMA документооборота:создания UCMA вызова дает плотный ответ только через 30 секунд

try{ 
var conversation = new Conversation(endpoint); 
avCall = new AudioVideoCall(conversation); 
avCall.EndEstablish(avCall.BeginEstablish(CalleeParty,options,null,null)); 
catch (FailureResponseException frex){ 
_logger.WriteToLog(frex.Message, "TransferCall", this.CallerUri, this.CalleeParty); 
} 
catch (OperationFailureException ofex) 
{ 
_logger.WriteToLog(ofex.Message, "TransferCall", this.CallerUri, this.CalleeParty); 
} 
catch (RealTimeException rtex){ 
} 
_logger.WriteToLog(rtex.Message, "TransferCall", this.CallerUri, this.CalleeParty); 
} 

если сторона назначения отклоняет вызов приложение получает занят ответ только после истечения таймаута (30 секунд). и потому, что вызов установлен внутри приложения ucma, я не получаю никаких голосов, которые указывают на состояние звонка и занятости.

- это нормально, а если нет, то как я могу это исправить?

ответ

2

Вы можете подписаться на событие Call.StateChanged перед вызовом BeginEstablish.

Если вы сделаете это, вы будете уведомлены о том, что вызов проходит через его различные состояния. В вашем примере вы увидите переадресацию вызова непосредственно из «Установление в конец». (принятым звонком было бы «Устанавливаться в учреждение», затем в конечном итоге было прекращено, как только любая сторона повесила трубку).

MSDN имеет полезную визуальную схему здесь: http://msdn.microsoft.com/en-us/library/hh347379.aspx. На самом деле, я связать его здесь для всех, чтобы видеть:

Lync Call States

Кроме того, Майкл Greenlee имеет blog post talking about exactly this, и описывает, как вы можете также получить дополнительную информацию, такую ​​как TransitionReason.

Надеюсь, что помогает.

+0

Спасибо, Том, я действительно попробовал это и попробовал также событие ProvisionalResponseReceived, которое может показать вам, какие ответы вы получаете во время вызова, такие как: звонок, попытка и т. Д. Проблема в том, что когда удаленный пользователь отклоняет вызов, есть промежуток в 30 секунд, прежде чем я получу занятое сообщение. i.e мое приложение не получает никакого ответа в течение 30 секунд. например: Я получаю следующие ответы во время установления соединения: 101 - 183 - 180 - 183 и т. Д. затем, если пользователь отклоняет вызов , я получаю 404, но через 30 секунд, как будто вызов исчезает в течение 30 секунд без ответы вообще. – ziwar

 Смежные вопросы

  • Нет связанных вопросов^_^