<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>RE: InvalidStateExceptionImpl: Could not meet post conditions of generateDT</title>
  <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_recent_posts?p_l_id=" />
  <subtitle>RE: InvalidStateExceptionImpl: Could not meet post conditions of generateDT</subtitle>
  <id>http://developer.cisco.com/c/message_boards/find_recent_posts?p_l_id=</id>
  <updated>2013-05-19T14:02:39Z</updated>
  <dc:date>2013-05-19T14:02:39Z</dc:date>
  <entry>
    <title>RE: JMF and JTAPI</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=14793199" />
    <author>
      <name>Alexander Anikin</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=14793199</id>
    <updated>2013-04-30T08:21:05Z</updated>
    <published>2013-04-30T08:21:05Z</published>
    <summary type="html">[quote=Mourad Karoui]what is "events" ???[/quote]It's an element of array of TermEv you receive in function terminalChangedEvent(TermEv[] events)  for TerminalObserver (it should implement TerminalObserver and CiscoTerminalObserver interfaces as I recall).
NB: I pasted i-th element of events array in previous message, but form chewed idex and square brackets
 
 </summary>
    <dc:creator>Alexander Anikin</dc:creator>
    <dc:date>2013-04-30T08:21:05Z</dc:date>
  </entry>
  <entry>
    <title>RE: JMF and JTAPI</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=14745360" />
    <author>
      <name>Alexander Anikin</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=14745360</id>
    <updated>2013-04-29T05:05:57Z</updated>
    <published>2013-04-29T05:05:57Z</published>
    <summary type="html">[color=#525252][b]Mourad Karoui[/b][/color]
[color=#525252]You should process [/color]CiscoRTPOutputStartedEv event to start RTPSender like this[/b]
case CiscoRTPOutputStartedEv.ID:
[/b]CiscoRTPOutputStartedEv ev2 = (CiscoRTPOutputStartedEv)events[i];
[/b]CiscoRTPOutputProperties props2 = ev2.getRTPOutputProperties();[/b][/b]
 rtpSender = new RTPSender(props2.getRemoteAddress(), props2.getRemotePort(), myAWOH.sock);

rtpSender.setDaemon(true);

rtpSender.start();</summary>
    <dc:creator>Alexander Anikin</dc:creator>
    <dc:date>2013-04-29T05:05:57Z</dc:date>
  </entry>
  <entry>
    <title>RE: Re: JTAPI Terminal(Address) object not getting updated when partition c</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=14599878" />
    <author>
      <name>Alexander Anikin</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=14599878</id>
    <updated>2013-04-24T08:22:18Z</updated>
    <published>2013-04-24T08:17:25Z</published>
    <summary type="html">[quote=Mourad Karoui]so i tried to implement an "rtp audio stack" like you said, but i didn't know  how.[/quote]
As far as I remember your call automatically hangs up after 10 seconds of absence of RTP stream, so single ring is not the case. It should be something else like absence of media registering. In my project where CTI Ports send calls here and there I has more than enough time to put calls on hold yet not implementing rtp streams.
You have to register your CTI Port media capabilities though. I do it like this:
CiscoMediaCapability [] caps = new CiscoMediaCapability [1];
caps[0] = CiscoMediaCapability.G711_64K_30_MILLISECONDS;
((CiscoMediaTerminal)phone_term).register(myAddress, startPort, caps);
You will receive two events for each media stream in connected call: CiscoRTPInputStartedEv, CiscoRTPOutputStartedEv
You will receive two events for each disconnected media stream: CiscoRTPOutputStoppedEv, CiscoRTPInputStoppedEv
To get them your observer should implement CiscoTerminalObserver interface along with other observing interfaces.
Please make sure you get them at/after Established event occures to proceed with RTP streaming.
Here is the sample I used in testing of output medai stream. It plays raw wav file (G711 raw stream) repeatedly in portions of 20 milliseconds (it works with previously mentioned registration parameters). Receiver just eats everything coming to UDP port.</summary>
    <dc:creator>Alexander Anikin</dc:creator>
    <dc:date>2013-04-24T08:17:25Z</dc:date>
  </entry>
  <entry>
    <title>RE: Play audio to call on route point and route when ready?</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12162647" />
    <author>
      <name>Alexander Anikin</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=12162647</id>
    <updated>2013-02-20T14:25:31Z</updated>
    <published>2013-02-20T14:23:46Z</published>
    <summary type="html">[quote=Stewart Ponsford]I thought rather than simply using CTI route points as a device to receive new calls and route to media terminals to provide in queue messaging I could use the route point to do the in queue messaging then perrform a redirect.[/quote]I think pure RP routing is flawed in regards of capacity. AFAIR route point can't have more than 20 something calls on it.   [quote]the doc stats one app (I presume this really means once provider handle) cannot registerRouteCallback and terminate media?[/quote]No, you don't need RouteCallBack. You have to issue CallControlConnection.accept() request "manually" from your java code. There is also CiscoAddress.setAutoAcceptStatus() interface in CUCM 8.x, not sure about 7.
As for media doc states the following:
Terminating media comprises a three-step process.
Step 1 The application registers its media capabilities with this terminal by using the CiscoRouteTerminal.register method.
Step 2 An application adds an observer that implements CiscoTerminalObserver interface by using the Terminal.addObserver method. Step 3 The application must add addCallObserver on CiscoRouteTerminal or on CiscoRouteAddress to receive CiscoCall object from the provider by using CiscoRTPHandle.
Probably you should register with DYNAMIC_MEDIA_REGISTRATION option and follow the procedure - respond to CiscoMediaOpenLogicalChannelEv, set up ip address&amp;port and provide media.
AFAIK static media termination doesn't work for route points.</summary>
    <dc:creator>Alexander Anikin</dc:creator>
    <dc:date>2013-02-20T14:23:46Z</dc:date>
  </entry>
  <entry>
    <title>RE: JTAPI 9.1.1</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=11728615" />
    <author>
      <name>Alexander Anikin</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=11728615</id>
    <updated>2013-02-08T15:49:00Z</updated>
    <published>2013-02-08T15:49:00Z</published>
    <summary type="html">Connection states can change in means on milliseconds.
You can check current state through CiscoTerminal.getDeviceState() == CiscoTerminal.DEVICESTATE_ALERTING.
Meanwhile the state of teminal can change already. Not a big deal if you want to show current state to user, but might be not that good if you plan to record missed calls.</summary>
    <dc:creator>Alexander Anikin</dc:creator>
    <dc:date>2013-02-08T15:49:00Z</dc:date>
  </entry>
  <entry>
    <title>RE: InvalidStateExceptionImpl: Could not meet post conditions of generateDT</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=7083739" />
    <author>
      <name>Alexander Anikin</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=7083739</id>
    <updated>2012-09-26T09:28:20Z</updated>
    <published>2012-09-26T09:28:20Z</published>
    <summary type="html">You code needs a lot of things:
* you have terminal and address observers on voice port/terminal
* you have 2 (and only 2) calls in progress on said terminal/address, second call is outgoing
* you do not receive # on incoming call, only on outgoing call
Is it the case?</summary>
    <dc:creator>Alexander Anikin</dc:creator>
    <dc:date>2012-09-26T09:28:20Z</dc:date>
  </entry>
</feed>

