Переадресация вызовов MSPL и окно IM - PullRequest
0 голосов
/ 06 декабря 2018

Мне нужно разработать приложение для Skype для бизнеса Server 2015, которое позволяет переадресацию звонков, но не переадресацию мгновенных сообщений.Мне удалось сделать это с управляемой службой MSPL, работающей на каждом внешнем интерфейсе.Вот фрагмент кода:

 public void OnRequest(object sender, RequestReceivedEventArgs e)
 {
        if (e.Request.StandardMethod == Request.StandardMethodType.Invite)
        {
            // Enable simple proxy mode and disable forking.
            e.Request.SimpleProxy = true;
            e.ServerTransaction.EnableForking = false;

            if (e.Request.AllHeaders.FindFirst(Header.StandardHeaderType.MsImFormat) == null) // do not manage IM message
            {

                if (e.Request.Content != null && e.Request.Content.Contains("m=audio")) //This is an audio call
                {
                    string destination = ComputeDestinationFromHeader(e); //some business code here 
                    e.Request.Retarget(destination);
                }
            }
        }
        e.ServerTransaction.CreateBranch().SendRequest(e.Request);
 }

Сценарий MSPL отлично работает с более низким приоритетом, чем UserServices.Проблемы возникают при смешивании IM и аудио на стороне клиента.Вот два проблемных сценария:

СЦЕНАРИЙ 1

  1. Алиса отправляет сообщение Бобу
  2. Боб открывает окно чата в скайпе
  3. Алиса звонит Бобу
  4. MSPL ретаргетеры приглашают Сесиль
  5. Сесиль отвечает на звонок
  6. Алиса или Сесиль вешают трубку

Проблема

Алиса больше не может звонить Бобу, это приводит к ошибке Skype, которая появляется в окне чата "Вызов не был завершен или завершился".
Это проблема клиента, причина нетSIP-приглашение отправляется Бобу в соответствии со снупером.

Как только Боб отправляет Алисе IM-сообщение, оно решает проблему.Или, если Алиса или Боб закрывают окно чата.

СЦЕНАРИЙ 2

  1. Алиса отправляет сообщение Бобу
  2. Боб открывает чат в скайпеокно
  3. Боб закрывает окно чата
  4. Алиса звонит Бобу
  5. MSPL ретаргетинг приглашает Сесиль
  6. Сесиль отвечает на звонок
  7. Алиса илиСесиль вешает трубку

Проблема

На стороне Алисы окно чата больше не адресовано Бобу, а Сесиль.Фактически, если Алиса отправляет новое IM-сообщение в этом окне чата, сообщение приходит к Сесиль.

Я уже попробовал SIP-ответ 302 (временно перемещен): https://docs.microsoft.com/en-us/lync/server-sdk/how-to-forward-im-invite-to-a-different-target Но Skype для бизнес-клиентакажется, не понимает код ответа и отправляет только ответ ACK, не инициируя новый запрос на приглашение.

Кто-то знает, что мне не хватает?Любая помощь будет принята с благодарностью!

...