04-24-2018 01:04 AM
Hello,
On the CUCM administration, when I configure softkey layout, the possible softkeys depends of the "call state" selected. How can I know this list for each call state?
Regards,
Fabien
04-24-2018 06:49 AM
This is catered for in the schema. Please look at XCallStateMember:
<xsd:complexType name="UpdateSoftKeySetReq">
<xsd:complexContent>
<xsd:extension base="axlapi:NameAndGUIDRequest">
<xsd:sequence>
<xsd:choice minOccurs="0">
<xsd:sequence minOccurs="0">
<xsd:element minOccurs="0" name="removeCallStates">
<xsd:complexType>
<xsd:sequence minOccurs="0">
<xsd:element maxOccurs="unbounded" name="callState" type="axlapi:XCallStateMember"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element minOccurs="0" name="addCallStates">
<xsd:complexType>
<xsd:sequence minOccurs="0">
<xsd:element maxOccurs="unbounded" name="callState" type="axlapi:XCallStateMember"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:element minOccurs="0" name="callStates">
<xsd:complexType>
<xsd:sequence minOccurs="0">
<xsd:element maxOccurs="unbounded" name="callState" type="axlapi:XCallStateMember"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="XCallStateMember">
<xsd:sequence minOccurs="0">
<xsd:element minOccurs="0" name="callStateName" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="softKeys">
<xsd:annotation>
<xsd:documentation>List of mandatory keys for each callstate ::
On Hook - NewCall
Connected - End Call
On Hold - Resume
Off Hook - End Call
Connected Transfer - Transfer
Digits After First - Backward
Connected Conference - Conference
Ring Out - End Call
Off Hook With Feature - End Call
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence minOccurs="0">
<xsd:element maxOccurs="unbounded" minOccurs="0" name="softKey" type="axlapi:XSoftKeyMember"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
04-24-2018 07:52 AM
Thank you for this answer. In fact this only show the mandatory keys but not the possible keys.
For example "NewCall" is not selectable for call state "Ring in"...
Regards,
04-24-2018 08:04 AM
We could check the DB dict. I wonder if these are stored as enums somewhere for each state...
04-24-2018 08:05 AM
I don't have a CUCM in front of me... Check typecallstate and softkeyset (TI-184) // tkcallstate (FI-1158)... looks promising?
04-24-2018 08:25 AM
In fact I have already have a quick look in the DB.
The table typecallstate list the possible values for Call State.
The table typesoftkey list all the possible values for keys (but no link with Call State).
The table softkeyset list the selected keys for each call state of each Softkey Template.
I look the tables with a "tkcallstate" but it's seems there is only softkeyset which is not exactly what I'm looking for
04-24-2018 10:09 AM
Probably a strong clue, if not a complete answer:
The table 'typesoftkey' does seem to have fields which indicate whether a particular softkey is mandatory or optional for a particular state, i.e. the 'mandatorymask' and 'validationmask' fields:
For example 'Redial' appears to be mandatory in no call state positions:
mandatorymask = 0 = 00000000 as a bit mask
and optional in all call state positions 1, 5, and 10:
validationmask = 4095 = 1000010001 as a bit mask
Transfer appears to be mandatory in call state position 6:
mandatorymask = 32 = 100000 as a bit mask
and optional in call stations positions 2 and 6:
validationmask = 34 = 100010 as a bit map
These values appear to line up with the call state values in the 'typecallstate' table (though offset by 1)
I haven't worked this out completely, but hope it helps
04-26-2018 12:59 PM
** backs away slowly **
04-27-2018 12:28 AM
Thank you! You are right! The fields validationmask contains the information I was looking for.
05-04-2018 01:03 AM
Sorry, I found that there was some default Softkey Templates that have softkeys which should be unavailable. For example, the softkey "intercept" should not be able for call state "Connected". But when I look to the template "Cisco Manager with Feature Hardkeys", this call state have this softkey .
When I create new Softkey Template based on "Cisco Manager with Feature Hardkeys", the softkey "Intercept" is present for call state "Connected" but if I remove it in CUCM Administration, I cannot add it again...
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide