03-23-2016 10:52 AM
We have developed an application that sends text to the cisco 8851 phone for display to the user. However, when the application is up displaying the text (call captions), the user is unable to use the dial pad for IVR access (i.e cannot send DTMF tones).
We are able to recreate this by using the cisco jtapi test tool thus ruling our application out as being the culprit. See screenshot for sending of text.
Here is a picture of what it looks like on the phone.
It appears that when the xml text window is open, the dial pad on the phone is rendered useless for sending DTMF. My question is, are we missing something that would allow us to turn on the dial pad when the application is in focus?
By the way, I asked this question in JTAPI forum and they sent me here.
Thanks.
Dustin
03-23-2016 02:25 PM
The short answer here is that this is the design intent: when the application plane has focus, keypresses are sent to the application, not the call plane, and will not result in DTMF digits during a call.
However, it may be possible in some cases to 'pass-through' keypresses via <KeyItem> and the SendDigits URI (see the Development Notes here: https://developer.cisco.com/site/ip-phone-services/documents/)
by adding multiple <KeyItem> elements to the object (if the object supports <KeyItem> - see the IPPS XSD schema definition) to represent the available DTMF keys, and assigning each a SendDigits command to in turn send the digit to the live call (if any:)
<CiscoIPPhoneText>
<Title>Title text goes here</Title>
<Prompt>The prompt text goes here</Prompt>
<Text>The text to be displayed as the message body goes here</Text>
<KeyItem>
<Key>KeyPad0</Key>
<URL>SendDigits:0:1</URL>
</KeyItem>
<KeyItem>
<Key>KeyPad1/Key>
<URL>SendDigits:1:1</URL>
</KeyItem>
<KeyItem>
<Key>KeyPad2</Key>
<URL>SendDigits:2:1</URL>
</KeyItem>
<KeyItem>
<Key>KeyPad3</Key>
<URL>SendDigits:3:1</URL>
</KeyItem>
<KeyItem>
<Key>KeyPad4</Key>
<URL>SendDigits:4:1</URL>
</KeyItem>
<KeyItem>
<Key>KeyPad5</Key>
<URL>SendDigits:5:1</URL>
</KeyItem>
<KeyItem>
<Key>KeyPad6</Key>
<URL>SendDigits:6:1</URL>
</KeyItem>
<KeyItem>
<Key>KeyPad3</Key>
<URL>SendDigits:7:1</URL>
</KeyItem>
<KeyItem>
<Key>KeyPad8</Key>
<URL>SendDigits:8:1</URL>
</KeyItem>
<KeyItem>
<Key>KeyPad9</Key>
<URL>SendDigits:9:1</URL>
</KeyItem>
<KeyItem>
<Key>KeyPadStar</Key>
<URL>SendDigits:*:1</URL>
</KeyItem>
<KeyItem>
<Key>KeyPadPound</Key>
<URL>SendDigits:#:1</URL>
</KeyItem>
</CiscoIPPhoneText>
Note: this may not always work due to unexpected call/feature interactions, and may not work on all phones.
Additionally, this adds significantly to the size of the XML object, so that it cannot be POSTed directly to the phone (max 512 characters.) You would need to POST a <CiscoIPPhoneExecute> object to the phone instead, including a unique URL where the phone could then retrieve the full XML object as desired.
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