Главная > Office Communications Server > Исходящий телефонный вызов из группы ответа

Исходящий телефонный вызов из группы ответа

Перевод статьи Outbound PSTN Calling from an OCS Response Group

«Группа ответов» (Response Group) в Office Communications Server 2007 R2 — нововведение, реализующее возможность распределения звонков между определенными пользователями (агентами). Если говорить технически, то эта возможность находится где-то между абонентскими группами (hunt group) в АТС, и полнофункциональным распределелителем звонков call-центра. Группу ответов достаточно легко установить, а после этого можно передать определенные функции управления конечным пользователям.

Существуют случаи, в которых бывает необходимо перенаправлять вызов, пришедший в группу ответов, на внешний телефонных номер. Это может быть нужно, если входящий звонок находится без ответа в очереди дольше, чем планируется, или когда очередь заполнена, или например при поступлении звонка в нерабочие часы. Настройка перенаправления довольно простая. Например, как показано на диалоге ниже, любой звонок, который находится в очереди InfoDesk больше 300 секунд, будет перенаправлен на указанный номер.

Свойства очереди группы ответа

Свойства очереди группы ответа

Не правда ли, просто? :) Сначала мне тоже так казалось. Тем не менее, я получил пару отчетов об отсутствии перенаправления на той же неделе, как все включил. Затем нашел этот пост, где автор, подтверждая, что исходящие вызовы не работают, дает обходной путь. Это подвигло меня искать решение.

Если нам недоступны клиентские логи — возьмемся за OCSLogger. Поскольку наша проблема относится к исходящим вызовам — я выбрал для исследования компонент OutboundRouting.

OCSLogger - компонент OutboundRouting

OCSLogger - компонент OutboundRouting

Чтобы воспроизвести проблему, я позвонил на группу ответа и подождал достаточно долго, чтобы звонок превысил время нахождения в очереди, и попытался перевести меня на внешний номер. Вот выдержка из лога компонента OutboundRouting:


Creating a OutboundRoutingTransaction object (4)
From uri: +12065551201@contoso.com
From User Uc Enabled: False
From User Policy: <null>
ReferrerUri: infodesk@contoso.com
Referrer Uc Enabled: True
Referrer Policy: <instance><property name="Name"><![CDATA[Default Policy]]"></property>...
Referrer Home server: <null>
IsAvMCUDialOut: False
Applying referrer's outbound policy
Routing request based on caller: infodesk@contoso.com
User infodesk@contoso.com has UC policy: Default Policy
target phone number: +12065551202, PhoneRouteUsage: Default Usage
No hits. Exit.
Respond with 403

Можете самостоятельно найти, в чем здесь проблема? я подожду :)

Каждый исходящий вызов в OCS производится в соответствии с голосовой политикой (voice policy). Именно голосовая политика сообщает OCS, разрешено ли пользователю выполнить этот внешний вызов, и какой при этом должен быть выбран маршрут. Обычно такая политика назначается пользователю организации.

Тем не менее, в некоторых случаях происходит применение другой политики. Например, при использовании делегирования вызовов, секретарь производит звонок «от имени» начальника — соответственно, звонок использует голосовую политику начальника. Звонок, совершенный Автосекретарем Exchange использует политику, назначенную контакту Автосекретаря. И в данном конкретном случае, при использовании групп ответов, звонок осуществляется с использованием политики, назначенной группе ответов.

Но — когда мы создавали контакт для группы ответов, ведь нас не спрашивали о голосовой политике? Верно. Утилита, создающая контакт, оставляет поле голосовой политики пустым, поэтому OCS использует политику по умолчанию — Default Policy что видно в вышеприведенном логе. А в нашем случае, политика Default Policy не содержит внешних маршрутов. Это видно по записи «No hits» в логе.

Это объясняет, почему проблема проявляется не у всех. Если вы в своей реализации OCS изменяли политику Default Policy, добавляя туда внешние маршруты — то у вас такая проблема и не проявится.

Есть два способа решить проблему. Первый — добавить в Default Policy внешний маршрут, позволяющий совершить исходящий вызов. Но если эта политика используется нами для каких-то нужных нам ситуаций, я бы поостерегся ее менять. Поэтому лучшим выходом могло бы быть второе решение: назначить верную голосовую политику контакту группы ответа.

Есть несколько способов, которыми можно это сделать. И раз уж использование WMI официально поддерживается в OCS, а с WMI хорошо работает PowerShell — то мы попробуем именно так. Эти команды прочитают значение голосовой политики текущего пользователя и назначат ее контакту группы ответа:


$VoiceUser = gwmi -q "select * from MSFT_SIPESUserSetting where PrimaryURI='sip:alice@contoso.com'"
$RGSContact = gwmi -q "select * from MSFT_SIPApplicationContactSetting where PrimaryURI='sip:infodesk@contoso.com'"
$RGSContact.UCPolicy = $VoiceUser.UCPolicy
$RGSContact.Put()

При выборе голосовой политики, назначаемой группе ответа, определите, кто менеджеры групп ответа, и назначьте группе наиболее строгую из политик менеджера. Цель в том, чтобы не позволить пользователям группы ответа набирать номера, не разрешенные им напрямую.

  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.
Необходимо войти на сайт, чтобы написать комментарий.