<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic phoneDevSpecific returns PHONE_REPLY 0x90000014 INVALID PHONE STATE in Call Control</title>
    <link>https://community.cisco.com/t5/call-control/phonedevspecific-returns-phone-reply-0x90000014-invalid-phone/m-p/4494513#M3190</link>
    <description>&lt;P&gt;Hi, our product uses phoneDevSpecific to push phone execute requests to Cisco IP phones.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The product has been working great for 15+ years on CallManager 4.0 through 12.5 with 79xx series phones.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Since adding support for 88xx phones, we are frequently seeing PHONE_REPLY with dwParam2 = 0x90000014 (Invalid Phone State) reported after a push.&amp;nbsp; The code checks that the phones are in Connected state by calling phoneGetStatus() prior to calling phoneDevSpecific().&amp;nbsp; The PHONE_REPLY with the error comes exactly 5 seconds after the call.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The error happens consistently with 8821, 8841 and 8861phones and Call Manager 12.5.&amp;nbsp; The push notification typically goes through to the phone, even when the error is reported.&amp;nbsp; The phones execute the push request, but this error is reported through TAPI and is logged in our system.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've uploaded TSP logs that show 'link read time out' on a socket just prior to firing lResult=0x9000014.&amp;nbsp; The sequence of calling phoneGetStatus() and phoneDevSpecific() starts at 06:45:59.918 in the log.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;06:45:59.964 | TSPI_phoneDevSpecific() TSPI_phoneDevSpecific returns = 0x0001038B&lt;BR /&gt;06:45:59.964 |&amp;lt;--TSPI_phoneDevSpecific()&lt;BR /&gt;06:46:00.434 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:00.434 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:00.434 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:00.934 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:00.934 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:00.934 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:01.435 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:01.435 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:01.435 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:01.935 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:01.935 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:01.935 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:02.435 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:02.435 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:02.435 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:02.936 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:02.936 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:02.936 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:03.437 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:03.437 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:03.437 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:03.937 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:03.937 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:03.937 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:04.438 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:04.438 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:04.438 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:04.938 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:04.938 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;06:46:04.969 |--&amp;gt;CSelsiusTSP::FireAsyncCompletion()&lt;BR /&gt;06:46:04.969 | CSelsiusTSP::FireAsyncCompletion()&lt;BR /&gt;dwRequestID=0x0001038B&lt;BR /&gt;lResult=0x90000014&lt;BR /&gt;m_pfnCompletionProc=[0xD14B9F70]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is a different call sequence needed for 88xx phones?&amp;nbsp; Any help would be appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
    <pubDate>Thu, 28 Oct 2021 21:18:22 GMT</pubDate>
    <dc:creator>mark.brezina</dc:creator>
    <dc:date>2021-10-28T21:18:22Z</dc:date>
    <item>
      <title>phoneDevSpecific returns PHONE_REPLY 0x90000014 INVALID PHONE STATE</title>
      <link>https://community.cisco.com/t5/call-control/phonedevspecific-returns-phone-reply-0x90000014-invalid-phone/m-p/4494513#M3190</link>
      <description>&lt;P&gt;Hi, our product uses phoneDevSpecific to push phone execute requests to Cisco IP phones.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The product has been working great for 15+ years on CallManager 4.0 through 12.5 with 79xx series phones.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Since adding support for 88xx phones, we are frequently seeing PHONE_REPLY with dwParam2 = 0x90000014 (Invalid Phone State) reported after a push.&amp;nbsp; The code checks that the phones are in Connected state by calling phoneGetStatus() prior to calling phoneDevSpecific().&amp;nbsp; The PHONE_REPLY with the error comes exactly 5 seconds after the call.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The error happens consistently with 8821, 8841 and 8861phones and Call Manager 12.5.&amp;nbsp; The push notification typically goes through to the phone, even when the error is reported.&amp;nbsp; The phones execute the push request, but this error is reported through TAPI and is logged in our system.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've uploaded TSP logs that show 'link read time out' on a socket just prior to firing lResult=0x9000014.&amp;nbsp; The sequence of calling phoneGetStatus() and phoneDevSpecific() starts at 06:45:59.918 in the log.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;06:45:59.964 | TSPI_phoneDevSpecific() TSPI_phoneDevSpecific returns = 0x0001038B&lt;BR /&gt;06:45:59.964 |&amp;lt;--TSPI_phoneDevSpecific()&lt;BR /&gt;06:46:00.434 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:00.434 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:00.434 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:00.934 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:00.934 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:00.934 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:01.435 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:01.435 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:01.435 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:01.935 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:01.935 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:01.935 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:02.435 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:02.435 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:02.435 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:02.936 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:02.936 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:02.936 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:03.437 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:03.437 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:03.437 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:03.937 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:03.937 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:03.937 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:04.438 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:04.438 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:04.438 |--&amp;gt;CSelsiusTSPLink::getMessage()&lt;BR /&gt;06:46:04.938 | CSelsiusTSPLink::getMessage() Link read time out. hSocket=3128&lt;BR /&gt;06:46:04.938 |&amp;lt;--CSelsiusTSPLink::getMessage()&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;06:46:04.969 |--&amp;gt;CSelsiusTSP::FireAsyncCompletion()&lt;BR /&gt;06:46:04.969 | CSelsiusTSP::FireAsyncCompletion()&lt;BR /&gt;dwRequestID=0x0001038B&lt;BR /&gt;lResult=0x90000014&lt;BR /&gt;m_pfnCompletionProc=[0xD14B9F70]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is a different call sequence needed for 88xx phones?&amp;nbsp; Any help would be appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Thu, 28 Oct 2021 21:18:22 GMT</pubDate>
      <guid>https://community.cisco.com/t5/call-control/phonedevspecific-returns-phone-reply-0x90000014-invalid-phone/m-p/4494513#M3190</guid>
      <dc:creator>mark.brezina</dc:creator>
      <dc:date>2021-10-28T21:18:22Z</dc:date>
    </item>
    <item>
      <title>Re: phoneDevSpecific returns PHONE_REPLY 0x90000014 INVALID PHONE STAT</title>
      <link>https://community.cisco.com/t5/call-control/phonedevspecific-returns-phone-reply-0x90000014-invalid-phone/m-p/4495096#M3191</link>
      <description>&lt;P&gt;Not aware of any differences that should be apparent for these phones.&amp;nbsp; I strongly suspect we'll need to look at the detailed TAPI logs (and perhaps phone logs too): suggest opening a developer support ticket so we can investigate: &lt;A href="https://developer.cisco.com/site/support/" target="_blank"&gt;https://developer.cisco.com/site/support/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Please include the TAPI logs, details of the scenario (device names/IPs, timestamps of test, etc.), and I might attach phone network capture logs (e.g. via Wireshark) as well.&lt;/P&gt;</description>
      <pubDate>Fri, 29 Oct 2021 16:58:46 GMT</pubDate>
      <guid>https://community.cisco.com/t5/call-control/phonedevspecific-returns-phone-reply-0x90000014-invalid-phone/m-p/4495096#M3191</guid>
      <dc:creator>dstaudt</dc:creator>
      <dc:date>2021-10-29T16:58:46Z</dc:date>
    </item>
    <item>
      <title>Re: phoneDevSpecific returns PHONE_REPLY 0x90000014 INVALID PHONE STAT</title>
      <link>https://community.cisco.com/t5/call-control/phonedevspecific-returns-phone-reply-0x90000014-invalid-phone/m-p/4495246#M3192</link>
      <description>&lt;P&gt;Thanks Dave, I'll get a support ticket created for this.&lt;/P&gt;</description>
      <pubDate>Fri, 29 Oct 2021 21:40:00 GMT</pubDate>
      <guid>https://community.cisco.com/t5/call-control/phonedevspecific-returns-phone-reply-0x90000014-invalid-phone/m-p/4495246#M3192</guid>
      <dc:creator>mark.brezina</dc:creator>
      <dc:date>2021-10-29T21:40:00Z</dc:date>
    </item>
  </channel>
</rss>

