Author Message
Damian012024
Joined: Mar 14, 2014
Messages: 2
Offline
Hello,
can you tell me if the Interface interaction between Call Listener and Call would work as described in the following scenarios:

1. The idea is to monitor a CE generated call (invoked by HTTP request from 3rd party) through call listener method (callAlerting). As soon as the information “callAlerting” is processed back to the Aura and thus to CE the call should be terminated by call method (drop). On endpoint site there would be only one ringing period audible, if any. I am considering such scenario to monitor certain endpoints not only for network reachability but also for serviceability. If alerting is passing back to the core system it means the station is registered and can make calls. Such monitoring could be useful for phones on public spots where an outage or theft wouldn't be detected timely. Can CE terminate such call by itself or would an external system need to communicate through “call listener” and “call” interfaces to manage it?

2. In the second scenario I would like to go one step further and play an announcement to the called party. In this case if the user doesn't answer to the call the "CallListener" should be able to notice it and "CallFactory" invoke a second call few minutes later. If there is still no answer alarming (call, sms or email) to other participants should happen automatically. Can that be triggered by CE itself or would the 3rd party system need to look at the "CallListener" output and generate a new HTTP request for each new call?

The same alarming should also happen if the collected digits in the Media Player are not correct. The digit check should get sure that the right person answered the call.

Thanks in advance.
Damian
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
Hi Damian, at this point our API doesn't support dropping a call after it is alerting. The drop operation is only supported with Call Intercept snap-ins and then only in the callIntercepted callback. I'm afraid that this means that you won't be able to implement your first use case with CE 2.0.

Regarding your second question, it will indeed be possible for a CE snap-in to directly create a new call to an alternate party. A new HTTP request would not be necessary to implement this use case. You would still have the limitation of not being able to drop an alerting call.

Joel
Damian012024
Joined: Mar 14, 2014
Messages: 2
Offline
Hi Joel,
Thanks a lot for your feedback!
I don't worry about the first option because I have another one which I think should work.
Regarding the second option, would you kindly have a look at the attached workflow and provide some feedback. Here the entire workflow description:
1. A watcher makes periodical calls to a voice mail system (e.g. AAM).
2. The CallListener registers the call and AAM plays an announcement "Your call has been registered."
3. An external system monitor that the watcher has called the AAM.

image

What would be here the Interface to the external system and what would be the appropriate method?
void callAnswered(Call call) - provides only the called party information, that means AAM. But I prefer to monitor the calling party, which is the phone number of the watcher.

4. If for some reason the periodical call doesn't occur the external system generates a HTTP request for a callback.
5. CE precedes the request by creating a call a playing an announcement to the watcher: "Pls enter a PIN to authenticate yourself."
6a. If PIN matches the workflow begins at 1.

image

6b. If not or if the watcher doesn't answer the call the external system starts a new HTTP Request for Escalation by: Scopia, SMS and Email.

image

The same question here for the interface between external system and CE.
What would be the method to leverage by the external system to get the information that the correct PIN has been entered?
Or what would be the best method to ascertain that CE couldn't reach the watcher so a new HTTP Request for Escalation has to be started?



At step 3 and 6 I would prefer to outsource the Workflow to the external system to get the customer more control of what is happening in thy system and at step 6 to provide a flexible platform to administer the Escalation process. But maybe it is better to let the flow at certain stages inside of CE because of the interface functionality which would need to be exposed to the external system. What is your opinion?

Thank you so much for your help
Damian
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
Hi Damian,

For the purposes that you are describing, the most appropriate interface between CE and an external system would probably be HTTP. You could expose a REST web service on the external system and consume it from your CE snap-in. In order to do so, you can use a client library such as the Apache HttpClient or the Jersey client from Oracle. Regarding your question about whether logic should be kept local to CE, I guess that much of it depends on what sorts of dependencies that logic has. In general you should design the system so that you'll have the fewest number of messages exchanged between the servers. It's OK to keep processing local to CE: it's designed to be a system that can host entire applications.

Regarding this statement: "void callAnswered(Call call) - provides only the called party information, that means AAM. But I prefer to monitor the calling party, which is the phone number of the watcher." Are you certain of that? You should be able to invoke "getCallingParty" on the Call object returned in the callAnswered callback. Please let us know if that doesn't work for you.

Joel
Go to:   
Mobile view