Поиск по этому блогу

воскресенье, 17 ноября 2013 г.

Процесс инициализации Cisco IP Phone: часть 3

Call Flow Traces при внутрикластерном вызове

В следующий SDI trace детально рассматривается внутрикластерный поток звонков. Определить Cisco IP Phones в потоке звонков можно по DN, tcpHandle и IP address. Cisco IP Phone (dn: 1001, tcpHandle: 0x4fbbc30, IP address: 172.16.70.231), который расположен в Cluster 2, звонит на другой Cisco IP Phone в том же кластере (dn=1000, tcpHandle= 0x4fbb150, IP address=172.16.70.230). Помните, что вы можете следить за устройством с помощью trace, обращая внимание на значения TCP handle, time stamp или именем устройства. Значение TCP handle для устройства остается тем же, пока устройство не перезагрузится или не или не будит отключено от сети.

На телефоне Cisco IP Phone (1001) поднята трубка. Trace показывает TCP handle и номер вызывающего[1] абонента, который отображается на Cisco IP Phone (в правом верхнем углу). Номер вызываемого абонента, в данном случае, не показывается, потому что пользователь не пытался набирать никакие цифры. Информация отображается в форме Skinny Station сообщений (имеется ввиду протокол SCCP) между Cisco Unified IP Phones и Cisco Unified Communications Manager.
16:05:41.625 CCM|StationInit - InboundStim - OffHookMessageID tcpHandle=0x4fbbc30
16:05:41.625 CCM|StationD - stationOutputDisplayText tcpHandle=0x4fbbc30, Display= 1001
Следующий trace показывает сообщение Skinny Station, которое передано от CUCM к Cisco IP Phone. Это сообщение включает световой индикатор на телефонной трубке (если использовать для примера модель телефона Cisco IP Phone 7911) на вызывающем телефоне.
16:05:41.625 CCM|StationD - stationOutputSetLamp stim: 9=Line instance=1 lampMode=LampOn tcpHandle=0x4fbbc30
Используя сообщение stationOutputCallState CUCM, уведомляет определенную станцию о информации относящейся к вызову.
16:05:41.625 CCM|StationD - stationOutputCallState tcpHandle=0x4fbbc30
Сообщение stationOutputDisplayPromptStatus используется для отображения «подсказки» на дисплее телефона.
16:05:41.625 CCM|StationD - stationOutputDisplayPromptStatus tcpHandle=0x4fbbc30
CUCM использует stationOutputSelectSoftKey сообщение, для уведомления Skinny Station (телефона) о выборе конкретного набора программных клавиш.
16:05:41.625 CCM|StationD - stationOutputSelectSoftKeys tcpHandle=0x4fbbc30
Информирует Skinny Station о корректном отображении линии.
16:05:41.625 CCM|StationD - stationOutputActivateCallPlane tcpHandle=0x4fbbc30
Процесс анализа цифр готов, для определения входящих цифр и проверки их на возможность маршрутизации в соответствии с базой данных. Запись cn=1001, представляет собой номер вызывающего абонента, где dd="" представляет собой набранные цифры, которые будут соответствовать номеру вызываемого абонента (набранный номер). Телефон посылает сообщение StationInit, CUCM посылает сообщение StationD и CUCM выполняет анализ цифр.
16:05:41.625 CCM|Digit analysis:match(fqcn="", cn="1001", pss="", dd="")
16:05:41.625 CCM|Digit analysis: potentialMatches=PotentialMatchesExist
CUCM предоставляет dial tone для вызывающего телефона (посылает сигнал готовности принять номер).
16:05:41.625 CCM|StationD - stationOutputStartTone: 33=InsideDialTone tcpHandle=0x4fbbc30
После CUCM определяет входящее сообщение и распознает, что на клавиатуре телефона нажата кнопка 1 и немедленно останавливает звуковой сигнал.
16:05:42.890 CCM|StationInit - InboundStim - KeypadButtonMessageID kpButton: 1 
tcpHandle=0x4fbbc30
16:05:42.890 CCM|StationD - stationOutputStopTone tcpHandle=0x4fbbc30
16:05:42.890 CCM|StationD - stationOutputSelectSoftKeys tcpHandle=0x4fbbc30
16:05:42.890 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="1")
16:05:42.890 CCM|Digit analysis: potentialMatches=PotentialMatchesExist
16:05:43.203 CCM|StationInit - InboundStim - KeypadButtonMessageID kpButton: 0 
tcpHandle=0x4fbbc30
16:05:43.203 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="10")
16:05:43.203 CCM|Digit analysis: potentialMatches=PotentialMatchesExist
16:05:43.406 CCM|StationInit - InboundStim - KeypadButtonMessageID kpButton: 0 
tcpHandle=0x4fbbc30
16:05:43.406 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="100")
16:05:43.406 CCM|Digit analysis: potentialMatches=PotentialMatchesExist
16:05:43.562 CCM|StationInit - InboundStim - KeypadButtonMessageID kpButton: 0 
tcpHandle=0x4fbbc30
16:05:43.562 CCM|Digit analysis: match(fqcn="", cn="1001", pss="", dd="1000")
После того, как CUCM принимает достаточное количество цифр для выполнения соответствия (соответствует шаблону, только при методе набора digit-by-digit), он предоставляет результат анализа цифр в табличном формате. CUCM игнорирует любые дополнительные цифры, которые набираются на телефоне, с этого момента, т.к. соответствие уже найдено.
16:05:43.562 CCM|Digit analysis: analysis results
16:05:43.562 CCM||PretransformCallingPartyNumber=1001
|CallingPartyNumber=1001
|DialingPattern=1000
|DialingRoutePatternRegularExpression=(1000)
|PotentialMatches=PotentialMatchesExist
|DialingSdlProcessId=(1,38,2)
|PretransformDigitString=1000
|PretransformPositionalMatchList=1000
|CollectedDigits=1000
|PositionalMatchList=1000
|RouteBlockFlag=RouteThisPattern
CUCM посылает эту информацию вызываемой стороне (tcpHandle указывает на телефон).
16:05:43.578 CCM|StationD - stationOutputCallInfo CallingPartyName=1001, 
CallingParty=1001, CalledPartyName=1000, CalledParty=1000, tcpHandle=0x4fbb150
CUCM заставляет лампочку моргать (не знаю как более красиво сказать), для индикации входящего вызова, на вызываемом телефоне.

16:05:43.578 CCM|StationD - stationOutputSetLamp stim: 9=Line instance=1 lampMode=LampBlink tcpHandle=0x4fbb150
CUCM предоставляет для Cisco IP Phone, на вызываемой стороне, звонок, уведомление на дисплее и другую связанную с вызовом информацию. Опять же, в этом можно убедится, что все сообщения направляются тому же телефону. Параметр tcpHandle имеет тоже значение во всех traces.
16:05:43.578 CCM|StationD - stationOutputSetRinger: 2=InsideRing tcpHandle=0x4fbb150
16:05:43.578 CCM|StationD - stationOutputDisplayNotify tcpHandle=0x4fbb150
16:05:43.578 CCM|StationD - stationOutputDisplayPromptStatus tcpHandle=0x4fbb150
16:05:43.578 CCM|StationD - stationOutputSelectSoftKeys tcpHandle=0x4fbb150
Обратите внимание, что CUCM так же предоставляет аналогичную информацию телефону на вызывающей стороне. Опять же, tcpHandle у этих Cisco IP Phones – различен.
16:05:43.578 CCM|StationD - stationOutputCallInfo CallingPartyName=1001, 
CallingParty=1001, CalledPartyName=, CalledParty=1000, tcpHandle=0x4fbbc30
16:05:43.578 CCM|StationD - stationOutputCallInfo CallingPartyName=1001, 
CallingParty=1001, CalledPartyName=1000, CalledParty=1000, tcpHandle=0x4fbbc30
CUCM отправляет уведомление или звуковой сигнал о том, что соединение было установлено, на телефон вызывающей стороны.
16:05:43.578 CCM|StationD - stationOutputStartTone: 36=AlertingTone tcpHandle=0x4fbbc30
16:05:43.578 CCM|StationD - stationOutputCallState tcpHandle=0x4fbbc30
16:05:43.578 CCM|StationD - stationOutputSelectSoftKeys tcpHandle=0x4fbbc30
16:05:43.578 CCM|StationD - stationOutputDisplayPromptStatus tcpHandle=0x4fbbc30
В этот момент, поднимается трубка на вызываемом телефоне, поэтому CUCM прекращает подачу звукового сигнала для вызывающего телефона.
16:05:45.140 CCM|StationD - stationOutputStopTone tcpHandle=0x4fbbc30
CUCM сообщает Skinny Station (в данном случае телефону) о начале приема Unicast RTP потока. Для этого CUCM предоставляет информацию об IP адрес вызываемого абонента, а так же информацию о кодеках и размер пакета в милисекундах. PacketSize обозначает целое число, которое содержит выборки, в миллисекундах, использующиеся для создания RTP пакетов (нормальное значение 30мс, в данном случае 20мс).
16:05:45.140 CCM|StationD - stationOutputOpenReceiveChannel tcpHandle=0x4fbbc30 myIP: e74610ac (172.16.70.231)
16:05:45.140 CCM|StationD - ConferenceID: 0 msecPacketSize: 20 compressionType:(4)Media_Payload_G711Ulaw64k
Аналогичную информацию CUCM отправляет вызываемому телефону (1000).
16:05:45.140 CCM|StationD - stationOutputOpenReceiveChannel tcpHandle=0x4fbb150 myIP: e64610ac (172.16.70.230)
16:05:45.140 CCM|StationD - ConferenceID: 0 msecPacketSize: 20 compressionType:(4)Media_Payload_G711Ulaw64k
CUCM принимает подтверждающее сообщение от вызываемой стороны об установлении открытого канала для RTP потока, а так же IP адрес вызываемой стороны. Оно сообщает CUCM о двух фрагментах информации, относящихся к Skinny Station. Первое содержит статус об открытии. Второе содержит полученный адрес порта для передачи к удаленной стороне. IP адрес передатчика (вызывающей стороны) в RTP потоке указывается ipAddr, а PortNumber на номер порта.
16:05:45.265 CCM|StationInit - InboundStim - StationOpenReceiveChannelAckID 
tcpHandle=0x4fbb150, Status=0, IpAddr=0xe64610ac, Port=17054, PartyID=2
Следующие сообщения, говорит станции (телефону) о начале передачи аудио и видео потока на указанный IP адрес и номер порта Cisco IP Phone на удаленной стороне.
16:05:45.265 CCM|StationD - stationOutputStartMediaTransmission tcpHandle=0x4fbbc30 myIP:e74610ac (172.16.70.231)
16:05:45.265 CCM|StationD - RemoteIpAddr: e64610ac (172.16.70.230) RemoteRtpPortNumber: 
17054 msecPacketSize: 20 compressionType:(4)Media_Payload_G711Ulaw64k
16:03:25.328 CCM|StationD(1): TCPPid=[1.100.117.1] OpenMultiReceiveChannel 
conferenceID=16777217 passThruPartyID=1000011 compressionType=101(Media_Payload_H263) 
qualifierIn=?. myIP: e98e6b80 (128.107.142.233)|
16:03:25.375 CCM|StationInit: TCPPid=[1.100.117.1] StationOpenMultiMediaReceiveChannelAck 
Status=0, IpAddr=0xe98e6b80, Port=65346, 
PartyID=16777233|
16:03:25.375 CCM|StationD(2): TCPPid = [1.100.117.2] 
star_StationOutputStartMultiMediaTransmission conferenceID=16777218 
passThruPartyID=16777250 remoteIpAddress=e98e6b80(66.255.0.0) remotePortNumber=65346 
compressType=101(Media_Payload_H263) qualifierOut=?. myIP: e98e6b80 
(128.107.142.233)|
Сообщение информирует о том, что стартовал RTP медиа поток между вызываемой и вызывающей стороной.
16:05:45.312 CCM|StationD - stationOutputStartMediaTransmission tcpHandle=0x4fbb150 myIP: 
e64610ac (172.16.70.230)
16:05:45.328 CCM|StationD - RemoteIpAddr: e74610ac (172.16.70.231) RemoteRtpPortNumber: 
18448 msecPacketSize: 20 compressionType:(4)Media_Payload_G711Ulaw64k
16:05:46.203 CCM|StationInit - InboundStim - OnHookMessageID tcpHandle=0x4fbbc30
Вызывающий абонент наконец кладет трубку, что служит сигналом о завершении всех управляющих сообщений между Skinny Station (телефонами) и CUCM, а так же завершает RTP поток между телефонами.
16:05:46.203 CCM|StationInit - InboundStim - OnHookMessageID tcpHandle=0x4fbbc30

Ссылка на первую часть и на вторую

P.S. Это перевод части официальной документациисли кто будит пользоваться обратите внимание, что точность и правильность перевода не гарантируется. В тексте могут присутствовать орфографические, пунктуационные и другие ошибки. За более полной информацией необходимо обратится к официальной документации.

пятница, 15 ноября 2013 г.

Процесс инициализации Cisco IP Phone: часть 2

Процесс регистрации на Cisco Unified Communications Manager

Другая важная часть SDI trace включает в себя процесс регистрации. Когда устройство подключают к сети оно используя информацию, полученную по DHCP (IP адрес, адрес TFTP сервера), соединяется с TFTP сервером для получения .cnf файла, и после этого соединяется с CUCM, который указан в этом .cnf файле. Устройством может быть MGCP gateway, Skinny gateway, или Cisco Unified IP Phone. Поэтому необходимо иметь возможность выяснить, зарегистрировалось ли устройство.

CUCM принял новые запрос на регистрацию. Регистрирующиеся устройства включают в себя MTP_nsa-cm1 (MTP services on Unified CM1) and CFB_nsa-cm1 (Conference Bridge service on Unified CM1). Хотя это программные функции, работающая на CUCM, внутри (в пределах CUCM) они рассматриваются как отдельные внешние функции, и поэтому им назначается TCPHandle, socket number, port number, а так же имя устройства.

16:02:52.750 CCM|StationInit - New connection accepted. DeviceName=, TCPHandle=0x4fbaa00, Socket=0x594, IPAddr=172.16.70.228, Port=3279, StationD=[0,0,0]
16:02:52.750 CCM|StationInit - New connection accepted. DeviceName=, TCPHandle=0x4fe05e8, Socket=0x59c, IPAddr=172.16.70.228, Port=3280, StationD=[0,0,0]
16:02:52.781 CCM|StationInit - Processing StationReg. regCount: 1 DeviceName=MTP_nsa-cm1, TCPHandle=0x4fbaa00, Socket=0x594, IPAddr=172.16.70.228, Port=3279, StationD=[1,45,2]
16:02:52.781 CCM|StationInit - Processing StationReg. regCount: 1 DeviceName=CFB_nsa-cm1, TCPHandle=0x4fe05e8, Socket=0x59c, IPAddr=172.16.70.228, Port=3280, StationD=[1,96,2]

Cisco Unified Communications Manager KeepAlive Process

Станция, устройство или сервис и CUCM используют следующие сообщения, подтверждающие, что они знанают о каналах связи между ними. Начало сообщений keepalive последовательности, подтверждает, что линия связи между CUCM и станцией остается активной. Остальные сообщения могут прийти от любых CUCM или станции.

16:03:02.328 CCM|StationInit - InboundStim - KeepAliveMessage - Forward KeepAlive to StationD. DeviceName=MTP_nsa-cm2, TCPHandle=0x4fa7dc0, Socket=0x568, IPAddr=172.16.70.229,Port=1556, StationD=[1,45,1]
16:03:02.328 CCM|StationInit - InboundStim - KeepAliveMessage - Forward KeepAlive to StationD. DeviceName=CFB_nsa-cm2, TCPHandle=0x4bf8a70, Socket=0x57c, IPAddr=172.16.70.229, Port=1557, StationD=[1,96,1]
16:03:06.640 CCM|StationInit - InboundStim - KeepAliveMessage - Forward KeepAlive to StationD. DeviceName=SEP0010EB001720, TCPHandle=0x4fbb150, Socket=0x600, IPAddr=172.16.70.230, Port=49211, StationD=[1,85,2]
16:03:06.703 CCM|StationInit - InboundStim - KeepAliveMessage - Forward KeepAlive to StationD. DeviceName=SEP003094C26105, TCPHandle=0x4fbbc30, Socket=0x5a4, IPAddr=172.16.70.231, Port=52095, StationD=[1,85,1]

Сообщения в следующем trace описывают keepalive последовательность, которая показывает, что линия связи между CUCM и станцией – активна. Опять же, сообщения могут исходить или от CUCM или от станции.

16:03:02.328 CCM|MediaTerminationPointControl - stationOutputKeepAliveAck tcpHandle=4fa7dc0
16:03:02.328 CCM|UnicastBridgeControl - stationOutputKeepAliveAck tcpHandle=4bf8a70
16:03:06.703 CCM|StationInit - InboundStim - IpPortMessageID: 32715(0x7fcb) tcpHandle=0x4fbbc30
16:03:06.703 CCM|StationD - stationOutputKeepAliveAck tcpHandle=0x4fbbc30

Ссылка на первую часть

P.S. Это перевод части официальной документациисли кто будит пользоваться обратите внимание, что точность и правильность перевода не гарантируется. В тексте могут присутствовать орфографические, пунктуационные и другие ошибки. За более полной информацией необходимо обратится к официальной документации.

среда, 6 ноября 2013 г.

Основные термины CUCM


Представлены основные определения терминов, которые применяются в Cisco CallManager.

Directory Number (DN) - это номер телефона конечного устройства. Это может быть IP phone, Cisco IP SoftPhone, факс или аналоговый телефон, работающий через голосовой шлюз. Количество цифр в номере зависит от диал плана: 100, 2003, 32475 и т.д.

Route Pattern – В VoIP route patterns можно сравнить со статической маршрутизацией. Разница лишь в том, что route patterns указывает на номера стандарта E.164 вместо IP адреса. Route Pattern является конкретным номером или, чаще всего, диапазоном номеров, которые используются для направления вызовом напрямую к устройствам, таким как DT-24+ или к маршрутизаторам с поддержкой «голоса», или косвенно через Route List. Например, шаблон 1XXX указывает на диапазон 1000-1999. Где X в 1XXX означает единичную цифру, заполнитель или спец. символ. !). A Route Pattern does not have to be unique within a Partition, as long as the Route Filter is different. Route Pattern, в общем, соответствует набираемому номеру при внешних вызовах, выполняет манипуляцию с цифрами (если необходимо) и указывает на Route List для маршрутизации.

Route List – Ранее назывался Route Point. Route List позволяет Cisco CallManager работать с Route Groups (представленных в Route List) в конкретном порядке. Route Lists расширяет понятие Route Groups и позволяет выбрать и назначить приоритет для группы маршрутов. Несколько Route Lists могут указывать на одну и ту же Route Groups. Route List выбирает направление для маршрутизации вызова и указать на предпочитаемую Route Groups.

Route Group - Route Groups and Route Lists работают вместе над контролем и улучшением маршрутизации внешних звонков. Route Group состоит из одного или нескольких шлюзов или портов шлюза. For instance, one can have two Primary Rate Interface (PRI) circuits to the same carrier that can be used arbitrarily. Шлюз или определенный порт на шлюзе, могут быть добавлены только в одну Route Group.

Device – устройством, в этом смысле, является шлюз, такой как Skinny-based (DT-24+, AS/AT или Catalyst 6000), MGCP-based (VG200) или H.323-based (все Cisco IOS® шлюзы и другие Cisco CallManagers). Эти все устройства могут быть указаны в Route Group. Сюда не входят Skinny или H.323 конечные точки, такие как IP телефоны или клиенты для сетевых конференций.

Translation Pattern – используется для того, что бы преобразовать вызываемый (Dialed Number Identification Service [DNIS]) и вызывающий (automatic number identification [ANI]) номер до маршрутизации вызова. Например, вы можете получать звонки из диапазона номеров 919 392-3XXX, которые должны преобразованы для IP телефонов, с внутренними номерами в диапазоне 2XXX. В Cisco CallManager вы установили Translation Pattern, для данного диапазона номеров 919 392-3XXX, который изменяет первый цифры номера 919 392-3 просто на 2, в то время как остальные цифры остаются нетронутыми. Затем звонок направляется к соответствующему телефону. Translation Patterns должен использоваться для истинного преобразования (как написано у Cisco «true translations») и не должен использоваться как простой способ удалить prefix digits.

От себя: у нас Translation Pattern используется для соответствия городского номера внутреннему, т.е номеру 123456 соответствует внутренний номер 0798. Просто чтобы не использовать line group, hunt list и hunt pilot.

Route Filter – может быть использован не только для ограничения набора, но также и для указания набора шаблонов с заполнителем, когда заполнитель @ используется в NANP. Cisco CallManager определяет тэги в каждом номере: международный номер, код города, номер офиса. Например, вы можете использовать его для блокировки кода города 900. Он может быть также использован совместно с Partitions и CSS, для настройки комплексных (более сложных правил).

Например, можно установить Route Filters, который позволяет пользователям группы «администратор» набирать любые номера, в том числе и международные, но ограничить пользователей группы «персонал» городскими (у Cisco они называются local numbers) и междугородними звонками, и разрешить пользователям группы «гость» звонки только на городские номера, и номера 911 и 800.

Partition – это логические группы DN и Route Patterns с аналогичными характеристиками достижимости. Для простоты восприятия их обычно называют, по их выполняемым свойствам, например, "NYLongDistance" и "NY911." Когда DN или Route Pattern помещены в определенную Partition, «создается» правило, определяющее кто может звонить на устройство или Route List.

Calling Search Space – группа партиций для поиска, определяющая на какие номера можно звонить. Например, номер телефона, который включен в CSS «Executive» может звонить на международные, междугородние, городские номера и 911, т.е. CSS «Executive» содержит список партиций "NYInternationalCall," "NYLongDistance," "NYLocalCall," и "NY911". Номер телефона, включенный в CSS «Guest» может звонить только на городские номера и 911, т.е. CSS «Guest» содержит список партиций "NYLocalCall" и "NY911". Попытка позвонить с этого номера (CSS «Guest») на международные номера потерпит неудачу, т.к. совпадение не найдено. Таким образом CSS определяет какие DN и Route Patterns могут быть вызваны.

Примечание: С точки зрения маршрутизации вызовов основное отличие между Cisco CallManager 2.x и Cisco CallManager 3.x или 4.x в понятии Partitions и Calling Search Spaces и замена термина "Route Point" на "Route List".

Hunting - позволяет направлять вызовы на список line groups, где каждая группа может независимо использовать один из трех алгоритмов, известные как broadcast, top down, или circular.
  • Hunting начинается, когда номер hunt pilot связан с hunt list, определяющего номер вызываемого абонента.
  • Hunt pilot может быть вызван непосредственно или назначен в качестве номера для переадресации.
  • Определения получателя входящего вызова (hunting), поля переадресации, участников hunting, игнорируются. Какой телефон должен зазвонить следующим определяется line groups в соответствующем hunt list.
Примечание: В Cisco CallManager Release 4.0 hunting останавливается, когда одна из сторон ответит на звонок или, когда hunt list будит исчерпан.

Call Forwarding – позволяет пользователям указать каким образом вызовы к их номерам, если пользователю не удалось ответить в указанный интервал времени, поле Call Forward No Answer, или если пользователь занят, поле Call Forward Busy.

P.S. Это перевод части официальной документациисли кто будит пользоваться обратите внимание, что точность и правильность перевода не гарантируется. В тексте могут присутствовать орфографические, пунктуационные и другие ошибки. За более полной информацией необходимо обратится к официальной документации.