Повторная маршрутизация с помощью cause ISUP, ACP, SIP
Описание механизма повторной маршрутизации.
Иногда требуется чтобы вызов, который не смог установиться с определенной причиной, был отправлен на другое направление или автоинформатор. Для этого служит механизм маршрутизации по "Cause". Например: происходит вызов с номера А на номер Б. В контексте маршрутизации находится направление на абонента Б, при этом в блоке "действия" определен параметр "Причины для повторной маршрутизации",он означает, что если вызов на абонента Б завершится с одной из перечисленных причин, будет выполнена повторная маршрутизация с А на номер Б с указанием текущей причины завершения вызова. Для того, чтобы воспользоваться указанными причинами, в контексте маршрутизации, в секции "условия" так же можно указать параметр "причины" в разделе "дополнительно". Он проверяет, совпала ли хотя бы одна из указанных причин с переданной в маршрутизацию причиной разъединения вызова. Если да, то такое правило сработает и позволит перенаправить вызов на другое направление.
Повторная маршрутизация
Механизм позволяет использовать режим маршрутизации по "Cause". Когда вызов с абонента А на абонента Б был завершен с определенным кодом (ACP, SIP, ISUP) завершения без фазы разговора/ожидания ответа, то выполняется повторная маршрутизация, в качестве одного из параметров указывается причина разъединения.
В случае одновременного указания нескольких причин разъединения, то правило сработает если хотя бы одна из причин совпадет.
<cause acp="ACPCauses" isup="ISUPCauses" sip="SIPCauses"/>
где
- ACPCauses — список ACP причина разъединения вызова, разделенных запятой;
- ISUPCauses — список ISUP причина разъединения вызова, разделенных запятой;
- SIPCauses — список SIP причина разъединения вызова, разделенных запятой.
Причина разъединения предыдущей попытки вызова в блоке условий.
Механизм позволяет использовать режим маршрутизации по "Cause". Когда вызов с абонента А на абонента Б был завершен с определенным кодом (ACP, SIP, ISUP) завершения без фазы разговора/ожидания ответа, то выполняется повторная маршрутизация, в качестве одного из параметров указывается причина разъединения.
Если в системе корректно настроены правила маршрутизации по "Cause", то возможно осуществить перевод таких вызовов на различного вида автоинформаторы (переадресация на автоинформаторы с сообщениями типа "абонент временно недоступен", "линия перегружена", "абонент не существует" и другие).
В случае одновременного указания нескольких причин разъединения, то правило сработает если хотя бы одна из причин совпадет. Как применяются в контексте маршрутизации данные правила смотреть здесь: подробное описание контекста маршрутизации.
На текущий момент имеется возможность анализировать не только "Cause" по которому был отбит вызов, но и его инициатора. Доступно 3 causeInitiator: system, network, user.
- System - Причина, связанная с внутренней логикой обработки вызова на ECSS-10;
- Network - Отбой произошел со стороны сети (транковое направление);
- User - Отбой произошел со стороны пользователя.
Пример настройки на ECSS-10:
/domain/refactor/properties/set alternate_route_sip_causes add 404/user
Причины для повторной маршрутизации в блоке действий.
Причина(ы) разъединения данного вызова, по которым необходимо выполнять перебор маршрутов.
Механизм позволяет использовать режим маршрутизации по "Cause". Когда вызов с абонента А на абонента Б был завершен с одним из указанных в <cause> причин, будет выполнена повторная маршрутизация вызова, но при этом в маршрутизации будут заданы причины с которыми текущий вызов завершился (маршрутизация по "Cause" работает только для вызовов, завершившихся до наступления фазы разговора/алертинга). Как применяются в контексте маршрутизации данные правила смотреть здесь: подробное описание контекста маршрутизации.
Важно! Для работы маршрутизации по SIP — cause, необходимо выставить параметры домена: alternate_route_sip_causes. Необходимо учесть, что маршрутизация для SIP не будет работать, если не будет получен cause от транка.
Влияние маршрутизации по "Cause" на другие подсистемы:
- СОРМ — на СОРМе перебор маршрутов выглядит как несколько независимых вызовов;
- СDR — на CDR перебор маршрутов выглядит как несколько независимых вызовов с одинаковым conn_id;
- AAA — на AAA перебор маршрутов выглядит как несколько независимых вызовов, при этом неуспешные вызов посылаются на ААА только в случае включенного свойства unsuccessful_call_info = true (domain/<DOMAIN>/aaa/accounting/set).
Замечание: в настоящий момент максимальное количество попыток перемаршрутизации вызова — 10 (с учетом первой маршрутизации).
RADIUS Маршрутизация телефонных вызовов
Vendor-Specific(26): Cisco(9): Cisco-AVPair(1): xpgk-route-retries=<$ROUTE_RETRIES>
Vendor-Specific(26): Cisco(9): Cisco-AVPair(1): ecss-routing-cause-isup=<$ROUTE_CAUSE_ISUP>
Vendor-Specific(26): Cisco(9): Cisco-AVPair(1): ecss-routing-cause-sip=<$ROUTE_CAUSE_SIP>
Vendor-Specific(26): Cisco(9): Cisco-AVPair(1): ecss-routing-cause-acp=<$ROUTE_CAUSE_ACP>
- <$ROUTE_RETRIES> — номер попытки маршрутизации вызова;
- <$ROUTE_CAUSE_ISUP> — ISUP причина отбития предыдущего вызова;
- <$ROUTE_CAUSE_SIP> — SIP причина отбития предыдущего вызова;
- <$ROUTE_CAUSE_ACP> — ACP причина отбития предыдущего вызова.