Для анализа трейсов прежде всего необходимо четко понимать что происходит внутри CUCM: для этого мы сперва вкратце рассмотрим архитектуру CUCM.
CUCM это приложение, написанное на языке C++ и функционирующее в ОС Red Hat.
Внутри приложения функционируют C++ Objects или SDL Processes (Signal Distribution Layer). Все эти объекты функционируют и взаимодействуют между собой.
Часть объектов существуют всегда, часть объектов создаются и уничтожаются при необходимости.
Все SDL Processes можно разделить на несколько логических уровней:
Как видно из схемы, помимо перечисленных уровней присутствуют также Aggregator Layer и Link Layer.
Aggregation Layer в контексте наших задач рассматривают вместе с Call Control Layer
Link Layer же отвечает за сетевое взаимодействие на уровне TCP UDP и нас вовсе не интересует.
Мы рассмотрим классификацию процессов CUCM на примере уровня Feature Layer.
В случае с 20-ю телефонами SIP на ноде будет создан один процесс SipHandler, промежуточный процесс SipStationInt, и 20 штук процессов SipStationD. Для SIP Trunk используется процессы SIPD - каждый для своего транка.
Рассмотрим теперь что происходит когда юзер поднимает трубу:
В этом случае телефон передаёт сообщение CUCM, и далее происходят события: StationInit передаёт сообщение процессу телефона StationD. И далее StationD создаст процесс StationCdpc. Процесс StationCdpc отвечает за один звонок с определённого телефона (С(all)D(ependent)), и будет уничтожен если положить трубу на рычаг.
Аналогично, если телефон выключить и пропадёт его регистрация - будет уничтожен его процесс StationD.
Для обработки введённого на телефоне номера в работу вступают процессы другого уровня - уровня Call Control.
Процессы данного уровня участвуют в установлении вызова и в обработке этого вызова:
Давайте посмотрим как будет обрабатываться звонок пошагово:
Call Control (CC) создаёт под данный звонок отдельный процесс Call Dependent Call Control (CdCc). На этот процесс будет переданы набранные цифры.
Для обработки звонка CdCc передаст на обработку номера в DA, где произойдут необходимые трансляции и будут определены привилегии для данного звонка.
Далее звонок отдаётся на Device Manager (DM), где будет определено устройство на которое необходимо передать наш звонок.
Информация от DM возвращается на DA и затем на CDCC.
Далее начнётся у