10.14.2010

Основы переадресации вызовов в GSM

Вкратце о том, как работает переадресация, я уже рассказал в статье Call forwarding. В этой же статье речь пойдёт о тонких технических моментах реализации этого дополнительного сервиса.

Предварительно необходимо ответить на вопрос:
Что такое переадресация вызова?
Определимся с терминологией.
Абонент А: это инициатор вызова - вызывающий абонент
Абонент B: получатель вызова - вызываемый абонент
Абонент С: получатель вызова после срабатывания переадресации. В частном случае это может быть ящик голосовой почты абонента В.

Сервис переадресации предоставляет возможность по условию (занято, нет ответа в течении Х секунд, абонент вне сети) или безусловно (т.е. всегда) преобразовать вызов А->B в вызов A->C. При этом все остаются довольны:
А - всё таки куда-то дозвонился :)
В - рано или поздно узнает от абонента С, что ему был вызов (например, прослушает голосовую почту). А в случае с переадресацией по неответу дополнительно увидит пропущенный вызов.
С - поговорит с абонентом А.

Как это происходит?
Если не вдаваться в подоробности, то коммутатор просто делает исходящий вызов от абонента В к абоненту С, а затем соединяет 2 вызова в конференцию.
Далее с подоробностями.

Кто и за что платит?
Абонент А всегда платит только за исходящий вызов абоненту В независимо от того - была переадресация или нет. Началом тарификации является ответ абонента С.
Абонент С платит только за входящий вызов от абонента В. Обычно такие вызовы бесплатны.
С абонентом В сложнее всего. Всё зависит от того, какой именно коммутатор выполнит переадресацию.


Какой именно коммутатор выполняет переадресацию?
Для начала хотел бы отметить, что всё рассмотрение будет происходить относительно номера В. Это входящий вызов и он обслуживается так, как изображено на рисунке ниже (взят из 23.018):


В GSM входящие вызовы обслуживает GMSC (Gateway Mobile Switching Centre), либо MSC с функционалом GMSC. Задача GMSC при поступлении вызова - определить текущее положение абонента (с точностью до коммутатора) и отправить вызов далее. Информация о местоположении хранится на HLR, поэтому туда и отправляется запрос (MAP sendRoutingInformation). HLR хранит у себя данные о текущем VLR абонента и его "доступности". Возможны такие варианты (с последствиями):
  • у абонента установлена безусловная переадресация. HLR без выяснения прочих подробностей "попросит" GMSC сделать переадресацию;
  • абонент давно не в сети, его профиль удалён из VLR, а номер VLR удалён из HLR. Если установлена (и активна) переадресация по событию "не в сети", то вывод напрашивается сам собой - HLR "попросит" GMSC сделать переадресацию;
  • номер VLR указан в профиле абонента. HLR инициирует запрос к текущему VLR абонента с целью получить временный номер для дозвона (MAP provideRoamingNumber). VLR проверяет в своём локальном профиле статус абонента. Статусов всего 2 - активный (imsiAttached) и неактивный (imsiDetached). Если статус активный, то VLR выделяет временный номер (MSRN) из пула и возвращает его на HLR. Если же статус неактивный (например, абонент выключил свой телефон), то возвращается ошибка - Absent Subscriber. Здесь важно отметить, что телефон должен быть именно выключен. Только в такой ситуации терминал обязан отправить в сеть сообщение, что он выключается. Если из телефона вынута батарея или она разряжена, то, естественно, никаких сообщений в сеть терминал не отправляет и VLR считает такого абонента зарегистрированным в сети. В случае ошибки Absent Subscriber, HLR обновит профиль абонента (выставит флаг imsiDetached) и "попросит" GMSC сделать переадресацию (естественно, если установлена переадресация по событию "не в сети");
  • номер VLR указан в профиле абонента, но дополнительно установлен флаг imsiDetached. Это означает, что предыдущая попытка дозвониться до абонента не увенчалась успехом т.к. он был вне сети. Запроса на VLR не будет, а HLR сразу же "попросит" GMSC сделать переадресацию (опять же, если установлена переадресация по событию "не в сети").

В результате, HLR ответит на GMSC либо временным номером абонента В (MSRN), либо номером С, с указанием причины переадресации.
Во втором случае всё просто - GMSC в домашней сети совершит исходящий вызов на номер С из профиля абонента, а затем соединит оба вызова в конференцию. Как указано выше, подобный сценарий возможен в следующих случаях:
  • у абонента В установлена безусловная переадрссация;
  • абонент В правильно выключил свой телефон;
  • абонент В недоступен (разрядилась батарея, вне покрытия сети) НО ему уже поступали входящие вызовы, а значит HLR уведомлен о его недоступности.
Все 3 описанных случая принято назвать одним термином - early call forwarding (ECF).

Вернемся к случаю, когда HLR возвращает временный номер абонента В. GMSC ничего не остаётся как начать процедуру установления вызова к коммутатору абонента В (VMSCB). Получив MSRN, коммутатор спрашивает у VLR о том, какому абоненту назначен этот номер и в каком состоянии сейчас этот абонент. Состояния абонента могут быть такими:
  • абонент зарегистрирован в сети (imsiAttached), активных голосовых вызовов в данный момент у него либо нет, либо вызов уже установлен и активирован сервис ожидания вызова (Call waiting). Теоретически абонент может принять вызов;
  • у абонента В сейчас активный голосовой вызов, но вызов в процессе установления или установлен и при этом сервис ожидания не активирован. Таким образом принять второй вызов абонент не может
Во втором случае VLR укажет коммутатору на необходимость установления нового вызова - от абонента В к абоненту С, а затем 2 вызова будут соединены в конференцию.
В первом случае VLR попросит коммутатор "поискать" абонента в группе сот (LAC). Поиск осуществляется с помощью широковещательного запроса (paging). Если терминал абонента "отозвётся", то абоненту А в голосовом канале будет отправлен сигнал КПВ (контроль посылки вызова, гудок 1 сек, пауза 3 сек, повтор), а коммутатор начнёт подсчёт времени до состояния неответа. В случае, если абонент В не ответит в течении заданного периода времени, коммутатор отправит запрос в VLR и тот укажет на необходимость установить связь с номером С и соединить оба вызова в конференцию.
Для первого случая также возможен вариант, когда терминал абонента В не ответит на paging. И вновь коммутатор отправит запрос в VLR и получит команду установить вызов с номером С.
Если переадресацию осуществляет текущий коммутатор абонента В, то такой вид переадресации называется late call forwarding (LCF).

Как это активировать/деактивировать?
Активация и деактивация переадресации может быть выполнена либо через меню телефона, либо с помощью комманд MMI (Man Machine Interface).

Почему нельзя поставить переадресацию на на номера с префиксом и платить меньше?
Во многих сетях есть возможность с помощью специальных префиксов совершать международные звонки по сниженным тарифам. Например, украинский оператор Kyivstar GSM предлагает использовать для таких вызовов префикс 015. Логично предположить, что может возникнуть идея установить в качестве номера переадресации что-то вида 015-код страны-код сети-номер абонента. Однако любопытных ждёт разочарование - сеть не примет такой номер и не установит переадресацию. Детальное обьяснение Вы можете найти в статье Call forwarding.
Если кратко - подобные правила набора номера работают только в домашней сети. Если абонент В будет в роуминге, то гостевая сеть не сможет осуществить переадресацию на такой номер. Почему так важно сохранить возможность переадресации в роуминге? Читайте дальше.

Как всё это происходит, когда абонент в роуминге?
В том случае, когда абонент В зарегистрирован в гостевой сети (роуминг-партнёре), схема вызова не меняется. В общем случае, домашней сети всё равно где сейчас зарегистрирован абонент - на домашнем или гостевом VLR. Но в случае, если необходимо произвести переадресацию, вопрос роуминга становится важным. В зависимости от типа переадрессации - late или early call forwarding, существенно меняется стоимость. В случае ECF, абонент В будет протарифицирован только за один вызов - от В к С по местным тарифам связи.
Если же имела место "поздняя" переадресация (LCF), то оплатить придётся как входящий вызов (А-В), так и исхоящий (В-С), причём оба по роуминг-тарифам. Самоё обидное для абонента это то, что в большинстве случаев о факте переадресации он узнает только при получении счёта об оплате услуг (или из смс от голосовой почты, если переадресация на ящик голосовой почты).

Инициатива EU, или почему европейцы не платят за переадресации в роуминге.
Подобное положение дел с LCF долго не давало покоя Европейской комиссии. Поэтому с 01.07.2010 всем европейским операторам мобильной связи запрещено взымать дополнительную плату за переадресацию в роуминге по Европе. Т.е. если произошло событие поздней переадресации при роуминге в европейской сети, то вместо оплаты 2х роуминг-звонков европеец оплатит только вызов от В к С по местным тарифам. Если же европейский абонент зарегистрировался в не-европейской сети, то платить придётся за всё. Аналогично, не-евпропейские абоненты по-прежнему будут оплачивать два роуминг-вызова при срабатывании переадресации в в европейской сети.
Думаете мобильные операторы при этом терпят огромные убытки? Как бы не так - некоторые на этом ещё и зарабатывают! Если Вам интересно каким образом, то оставляйте комментарии - я обязательно напишу о том, как я провёл это лето :)

Статьи по теме:
Call forwarding
SMS Forwarding
Home rerouting

Read More..

10.13.2010

Call Forwarding

Поступил вопрос: рассказать как работает переадресация вызовов в мобильных сетях, где происходит проверка и что именно проверяется при установке переадресации? Почему невозможно установить переадресацию на международный номер с префиксом услуги дешёвых звонков зарубеж?
Начал писать статью и понял, что получается уж слишком заумно (много терминов, куча всяких разных сценариев). Поэтому ту статью решил пока отложить, а ответить вкратце на поставленные вопросы.

Если абонент не в роуминге, то переадресация всегда происходит в домашней сети. Если же последняя регистрация была в роуминге, то в зависимости от состояния абонента, переадресация может произойти либо в домашней, либо в гостевой сети.
В простейшем случае переадресация происходит так:
1. Абонент А звонит абоненту В.
2. Текущий статус абонента не позволяет принять вызов или абонент не отвечает в течении установленного времени.
3. Коммутатор инициирует новый вызов на номер С из профиля абонента.
4. Как только абонент С отвечает (в качестве абонента С может выступать голосовая почта), оба вызова соединяются в конференцию.

Для того, чтобы переадресация сработала её необходимо установить в меню телефона или используя специальные коды. (например, *21*ХХХXXXX#).
При этом коммутатор отправляет запрос в домашний HLR с целью проверки правильности этого самого ХХХXXXX.
Что из себя представляет эта проверка? Во-первых, во многих сетях абонентам разрешено ставить переадресаци. только на номера голосовой почты. Во всех остальных сетях проверяется чтобы ХХХXXXX соответствовал таким правилам:
  1. номер в национальном формате (начинается с префикса оператора, например, 67XXXXXXX у Киевстар). Должен отметить, что Киевстар не позволяет задать номер в таком формате;
  2. префикс выхода на межгород, а затем номер в национальном формате. Например 067XXXXXXX;
  3. международный префикс, код страны, номер в национальном формате. Например, +38067ХХХХХХХ
В HLR номер переадрессации должен быть сконвертирован и сохранён в международном формате. Всяческие варианты с префиксами для дешёвых звонков зарубеж запрещёны, потому что не попадают ни под одно из приведённых правил. В основном это сделано с целью обеспечить срабатывании переадресации в роуминге. Откуда гостевой сети знать, что украинские абоненты любят экономить, а поэтому вместо + или 00 набирают 015 (Kyivstar GSM) или 000 (MTS Ukraine)?

Статьи по теме:
Основы переадресации вызовов в GSM
SMS Forwarding
Home rerouting

Read More..