Contents

Introduction

Prerequisites

Requirements

Components Used

Background Information

Events that Trigger Cisco Unity Connection to turn MWIs On and Off

CUCM Trace Snippet for MWI On/Off Scenarios with SQL Queries to Verify the MWI Flag Value

Scenario 1: Skinny Call Control Protocol (SCCP) phone extension 1007 calling MWI On number 1999

Scenario 2: SCCP phone extension 1007 calling MWI Off number 1998

Trace Snippet for MWI On/Off Scenario from CUCM integrated with Unity connection through Skinny Call Control Protocol (SCCP)

Introduction

This document describes working test scenarios for both Message Waiting Indicator (MWI) ON/OFF and explains the MWI stored procedure function and the changes that are seen in both the setup scenarios.Structured Query Language (SQL) results are included to verify if the changes were applied on the Informix Database (IDS) after the MWI notififcation message arrival on Cisco Unified Communications Manager (CUCM).

Prerequisites

Requirements

There are no specific requirements for this document.

Components Used

This document is not restricted to specific software and hardware versions.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

Background Information

Events that Trigger Cisco Unity Connection to turn MWIs On and Off

- When a message for a user arrives on the Cisco Unity Connection message store, Cisco Unity Connection notifies the phone system to turn On an MWI on the phone for that user

- The MWI remains On even after the user listens to the message. It remains On until the message is saved or deleted. Once the message is saved or deleted, Cisco Unity Connection notifies the phone system to turn Off the MWI on the phone

- When MWIs are synchronized, Cisco Unity Connection queries the message store to determine the status of MWIs on all phones, and resets the applicable MWIs

CUCM Trace Snippet for MWI On/Off Scenarios with SQL Queries to Verify the MWI Flag Value

Scenario 1: Skinny Call Control Protocol (SCCP) phone extension 1007 calling MWI On number 1999

Digit Analysis for the called number 1999 in the CUCM traces

06150176.006 |11:53:11.122 |AppInfo  |Digit analysis: match(pi="2", fqcn="1007", cn="1007",plv="5", pss="", TodFilteredPss="", dd="1999",dac="0")

06150176.007 |11:53:11.122 |AppInfo  |Digit analysis: analysis results

06150176.008 |11:53:11.122 |AppInfo  ||PretransformCallingPartyNumber=1007

|CallingPartyNumber=1007

|DialingPartition=

|DialingPattern=1999

|FullyQualifiedCalledPartyNumber=1999

|DialingPatternRegularExpression=(1999)

SQL procedure is called to update the column record flag value to 2 which means MWI ON indicator

06150194.001 |11:53:11.123 |AppInfo  |DB: SQL1[execute procedure dblSetMWIEx('1007', '', 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]

SQL query on CUCM Node CLI  to check the flag value (tklampblinkrate_messagewaiting)

admin: run sql select n.dnorpattern, d.tklampblinkrate_messagewaiting from numplan as n,numplandynamic as d where n.dnorpattern = '1007' and n.pkid = d.fknumplan

dnorpattern tklampblinkrate_messagewaiting

=========== ==============================

1007        2

Scenario 2: SCCP phone extension 1007 calling MWI Off number 1998

Digit Analysis for the called number 1998 in the CUCM traces

06150336.006 |11:53:16.427 |AppInfo  |Digit analysis: match(pi="2", fqcn="1007", cn="1007",plv="5", pss="", TodFilteredPss="", dd="1998",dac="0")

06150336.007 |11:53:16.427 |AppInfo  |Digit analysis: analysis results

06150336.008 |11:53:16.427 |AppInfo  ||PretransformCallingPartyNumber=1007

|CallingPartyNumber=1007

|DialingPartition=

|DialingPattern=1998

|FullyQualifiedCalledPartyNumber=1998

SQL procedure is called to update the column record flag value to 1 which means MWI Off indicator

06150355.001 |11:53:16.428 |AppInfo  |DB: SQL1[execute procedure dblSetMWIEx('1007', '', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]

SQL query on CUCM Node CLI to check the flag value (tklampblinkrate_messagewaiting)

admin: run sql select n.dnorpattern, d.tklampblinkrate_messagewaiting from numplan as n,numplandynamic as d where n.dnorpattern = '1007' and n.pkid = d.fknumplan

dnorpattern tklampblinkrate_messagewaiting

=========== ==============================

1007        1

Stored Procedure SQL for MWI Extension

CREATE FUNCTION dblSetMWIEx (  DN LIKE NumPlan.DnOrPattern,

partition LIKE RoutePartition.pkid,

lamp LIKE NumPlanDynamic.tkLampBlinkRate_MessageWaiting,

"1007" will be the input to the DN field ,"2" or "1" will be acting as a lamp input to the function "dblSetMWIEx"

As the partition value passed onto the function is NULL, then this IF condition is met and the listed SQL query fetches the pkid value from NumPlanDynamic table into param : NPDpkid after doing an inner join with the numplan table

IF (partition = '') THEN

SELECT NumPlanDynamic.pkid into NPDpkid from NumPlanDynamic INNER JOIN NumPlan ON NumPlanDynamic.fknumplan = NumPlan.pkid

WHERE (NumPlan.dnOrPattern = '1007' AND NumPlan.fkRoutePartition IS NULL);

Result of the SQL query from CUCM Node CLI

admin:run sql select NumPlanDynamic.pkid  from NumPlanDynamic INNER JOIN NumPlan ON NumPlanDynamic.fknumplan = NumPlan.pkid WHERE (NumPlan.dnOrPattern ='1007' AND NumPlan.fkRoutePartition IS NULL)

pkid

====================================

6b221dbe-4c53-4184-9cb9-d8a4e3a7f500

This pkid value will be passed onto the NPDpkid value as defined in the function.

Update query executed in the function dblSetMWIEx for updating the lamp field value as defined in the SQL procedure:

Update NumPlanDynamic set NumPlanDynamic.tkLampBlinkRate_MessageWaiting = lamp WHERE pkid = NPDpkid;

The update query updates the tkLampBlinkRate_MessageWaiting column.

Trace Snippet for MWI On/Off Scenario from CUCM integrated with Unity connection through Skinny Call Control Protocol (SCCP)

1. MWI On Scenario

MWI notification message from Unity with mwiwaiting flag set to 1

19684211.001 |19:45:22.377 |AppInfo  |StationInit: (0030551) StationMwiNotificationMessage mwiTarget=1007 mwiCtrl=1999 msgsWaiting=1 totalVm(-1/-1) priVm(-1/-1) totalFax(-1/-1) priFax(-1/-1)

19684212.000 |19:45:22.377 |SdlSig   |StationMwiNotification                 |restart0                       |StationD(1,100,58,30551)         |StationInit(1,100,57,1)          |1,100,13,30598.8^10.106.90.141^CiscoUM2-VI2 |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0]  mwiTargetDn=1007 mwiControlDn=1999

msgsWaiting=1

19684213.000 |19:45:22.377 |SdlSig   |SsInfoReq                              |wait                           |Cc(1,100,213,1)                  |StationD(1,100,58,30551)         |1,100,13,30598.8^10.106.90.141^CiscoUM2-VI2 |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0] Type=0 Key=0 Node=1 Party=0 DevId=(1,58,30551) CSS= dn=ti=1nd=1007pi=0si1 FeatId=122 FeatVal=2 WhichLamps=0 LampPersis=0 Signal=0 Cause=0 clientCodeReq=F authCodeReq=F mwiOnOffDn=1999 FDataType=0opId=0ssType=0 SsKey=0invokeId=0resultExp=Fbpda=F

19684214.000 |19:45:22.377 |SdlSig   |SsInfoReq                              |wait                           |MessageWaitingManager(1,100,126,1) |Cc(1,100,213,1)                  |1,100,13,30598.8^10.106.90.141^CiscoUM2-VI2 |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0] Type=0 Key=0 Node=1 Party=0 DevId=(1,58,30551) CSS= dn=ti=1nd=1007pi=0si1 FeatId=122 FeatVal=2 WhichLamps=0 LampPersis=0 Signal=0 Cause=0 clientCodeReq=F authCodeReq=F mwiOnOffDn=1999 FDataType=0opId=0ssType=0 SsKey=0invokeId=0resultExp=Fbpda=F

19684214.001 |19:45:22.377 |AppInfo  |MessageWaitingManager::ssInforeq mwiOnOffDn=1999 passedCSS= mwiDnCss=

19684214.002 |19:45:22.377 |Created  |                                       |                               |MessageWaiting(1,100,127,106960741) |MessageWaitingManager(1,100,126,1) |                                         |NumOfCurrentInstances: 6489

19684214.003 |19:45:22.377 |AppInfo  |MessageWaitingManager -  hashChildProcess - entries in the messageWaiting table = 0x1959

19684215.000 |19:45:22.377 |SdlSig   |SsInfoReq                              |wait                           |MessageWaiting(1,100,127,106960741) |MessageWaitingManager(1,100,126,1) |1,100,13,30598.8^10.106.90.141^CiscoUM2-VI2 |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0] Type=0 Key=0 Node=1 Party=22308893 DevId=(1,58,30551) CSS= dn=ti=1nd=1007pi=0si1 FeatId=122 FeatVal=2 WhichLamps=0 LampPersis=0 Signal=0 Cause=0 clientCodeReq=F authCodeReq=F mwiOnOffDn=1999 FDataType=0opId=0ssType=0 SsKey=0invokeId=0resultExp=Fbpda=F

19684215.001 |19:45:22.378 |AppInfo  |MessageWaiting::sendDaReq dialingPattern=1007 dialingPartition= voiceMailbox=1007 orig digitString=1007, cmDeviceType 0

19684215.002 |19:45:22.378 |Stopping |                                       |                               |MessageWaiting(1,100,127,106960741) |MessageWaiting(1,100,127,106960741) |                                         |NumOfCurrentInstances: 6489

19684216.000 |19:45:22.378 |SdlSig   |DbVoiceMailUpdtReq                     |initialized                    |Db(1,100,202,1)                  |MessageWaiting(1,100,127,106960741) |1,100,13,30598.8^10.106.90.141^CiscoUM2-VI2 |[T:N-H:0,N:0,L:0,V:0,Z:0,D:0] 02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 4862b9a5 00000000

Update SQL procedure is executed to update the lamp field to 2

19684216.001 |19:45:22.378 |AppInfo  |DB: SQL1[execute procedure dblSetMWIEx('1007', '', 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]

19684216.002 |19:45:22.380 |AppInfo  |DB: SQL2[execute procedure dblSetMWIEx('1007', '', 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]

19684217.000 |19:45:22.384 |SdlSig   |SsInfoRes                              |restart0                       |StationD(1,100,58,30551)         |MessageWaiting(1,100,127,106960741) |1,100,13,30598.8^10.106.90.141^CiscoUM2-VI2 |[R:N-H:0,N:1,L:0,V:0,Z:0,D:0] SsType=0 SsKey=106960741 SsNode=1 SsParty=0 DevId=(0,0,0) CSS= dn=ti=1nd=1007pi=0si1 FeatId=122 FeatVal=2 WhichLamps=0 LampPersis=0 SsSignal=0 SsCause=16

19684217.001 |19:45:22.384 |AppInfo  |StationD:    (0030551) TX StationMwiResponse: mwiTarget=1007 result=0.

19684218.000 |19:45:22.384 |SdlSig   |MessageWaitingComplete                 |wait                           |MessageWaitingManager(1,100,126,1) |MessageWaiting(1,100,127,106960741) |1,100,13,30598.8^10.106.90.141^CiscoUM2-VI2 |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0]

19684218.001 |19:45:22.385 |AppInfo  |MessageWaitingManager - deleteEntryFromMwiTable - entries in the messageWaiting table = 0x1958

2. MWI Off Scenario

MWI notification message from Unity with mwiwaiting flag set to 0

19775953.001 |19:45:42.812 |AppInfo  |StationInit: (0030549) StationMwiNotificationMessage mwiTarget=1007 mwiCtrl=1998 msgsWaiting=0 totalVm(-1/-1) priVm(-1/-1) totalFax(-1/-1) priFax(-1/-1)

19775954.000 |19:45:42.812 |SdlSig   |StationMwiNotification                 |restart0                       |StationD(1,100,58,30549)         |StationInit(1,100,57,1)          |1,100,13,30597.10^10.106.90.141^CiscoUM2-VI3 |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0]  mwiTargetDn=1007 mwiControlDn=1998

msgsWaiting=0

19775955.000 |19:45:42.812 |SdlSig   |SsInfoReq                              |wait                           |Cc(1,100,213,1)                  |StationD(1,100,58,30549)         |1,100,13,30597.10^10.106.90.141^CiscoUM2-VI3 |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0] Type=0 Key=0 Node=1 Party=0 DevId=(1,58,30549) CSS= dn=ti=1nd=1007pi=0si1 FeatId=122 FeatVal=1 WhichLamps=0 LampPersis=0 Signal=0 Cause=0 clientCodeReq=F authCodeReq=F mwiOnOffDn=1998 FDataType=0opId=0ssType=0 SsKey=0invokeId=0resultExp=Fbpda=F

19775956.000 |19:45:42.812 |SdlSig   |SsInfoReq                              |wait                           |MessageWaitingManager(1,100,126,1) |Cc(1,100,213,1)                  |1,100,13,30597.10^10.106.90.141^CiscoUM2-VI3 |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0] Type=0 Key=0 Node=1 Party=0 DevId=(1,58,30549) CSS= dn=ti=1nd=1007pi=0si1 FeatId=122 FeatVal=1 WhichLamps=0 LampPersis=0 Signal=0 Cause=0 clientCodeReq=F authCodeReq=F mwiOnOffDn=1998 FDataType=0opId=0ssType=0 SsKey=0invokeId=0resultExp=Fbpda=F

19775956.001 |19:45:42.812 |AppInfo  |MessageWaitingManager::ssInforeq mwiOnOffDn=1998 passedCSS= mwiDnCss=

19775956.002 |19:45:42.812 |Created  |                                       |                               |MessageWaiting(1,100,127,106964522) |MessageWaitingManager(1,100,126,1) |                                         |NumOfCurrentInstances: 6266

19775956.003 |19:45:42.812 |AppInfo  |MessageWaitingManager -  hashChildProcess - entries in the messageWaiting table = 0x187A

19775957.000 |19:45:42.812 |SdlSig   |SsInfoReq                              |wait                           |MessageWaiting(1,100,127,106964522) |MessageWaitingManager(1,100,126,1) |1,100,13,30597.10^10.106.90.141^CiscoUM2-VI3 |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0] Type=0 Key=0 Node=1 Party=22312676 DevId=(1,58,30549) CSS= dn=ti=1nd=1007pi=0si1 FeatId=122 FeatVal=1 WhichLamps=0 LampPersis=0 Signal=0 Cause=0 clientCodeReq=F authCodeReq=F mwiOnOffDn=1998 FDataType=0opId=0ssType=0 SsKey=0invokeId=0resultExp=Fbpda=F

19775957.001 |19:45:42.812 |AppInfo  |MessageWaiting::sendDaReq dialingPattern=1007 dialingPartition= voiceMailbox=1007 orig digitString=1007, cmDeviceType 0

19775957.002 |19:45:42.812 |Stopping |                                       |                               |MessageWaiting(1,100,127,106964522) |MessageWaiting(1,100,127,106964522) |                                         |NumOfCurrentInstances: 6266

19775958.000 |19:45:42.812 |SdlSig   |DbVoiceMailUpdtReq                     |initialized                    |Db(1,100,202,1)                  |MessageWaiting(1,100,127,106964522) |1,100,13,30597.10^10.106.90.141^CiscoUM2-VI3 |[T:N-H:0,N:0,L:0,V:0,Z:0,D:0] 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00aff8ac 00000000 48c057a9 00000000

Update SQL procedure is executed to update the lamp field to 1

19775958.001 |19:45:42.812 |AppInfo  |DB: SQL1[execute procedure dblSetMWIEx('1007', '', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]

19775958.002 |19:45:42.820 |AppInfo  |DB: SQL2[execute procedure dblSetMWIEx('1007', '', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]

19775959.000 |19:45:42.823 |SdlSig   |SsInfoRes                              |restart0                       |StationD(1,100,58,30549)         |MessageWaiting(1,100,127,106964522) |1,100,13,30597.10^10.106.90.141^CiscoUM2-VI3 |[R:N-H:0,N:1,L:0,V:0,Z:0,D:0] SsType=0 SsKey=106964522 SsNode=1 SsParty=0 DevId=(0,0,0) CSS= dn=ti=1nd=1007pi=0si1 FeatId=122 FeatVal=1 WhichLamps=0 LampPersis=0 SsSignal=0 SsCause=16

19775959.001 |19:45:42.823 |AppInfo  |StationD:    (0030549) TX StationMwiResponse: mwiTarget=1007 result=0.

19775960.000 |19:45:42.823 |SdlSig   |MessageWaitingComplete                 |wait                           |MessageWaitingManager(1,100,126,1) |MessageWaiting(1,100,127,106964522) |1,100,13,30597.10^10.106.90.141^CiscoUM2-VI3 |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0]

19775960.001 |19:45:42.824 |AppInfo  |MessageWaitingManager - deleteEntryFromMwiTable - entries in the messageWaiting table = 0x1879