cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
793
Views
0
Helpful
1
Replies

DTMF not working when xml service application in focus on phone

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.

Screen Shot 2016-03-23 at 12.46.00 PM.png

Here is a picture of what it looks like on the phone.

FullSizeRender.jpg

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

1 Reply 1

dstaudt
Cisco Employee
Cisco Employee

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. 

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: