Service requirements from Telecom API - java

I created a service or application (whatever you call it ;)) which use Location and SMS REST API which are provided by Telecom. I hope that i do not have to explain what that APIs do, but first is obtaining a mobile phone location and second one is sending SMS to mobile phone.
I was wondering which, mainly in telecommunication way, parameters are used to describe parameters which are important for those APIs. I think it will be :
-response time, maintain services under heavy load, service delay, maybe CAPS (Call per second).
That's why i would like to ask, what more it can be tested with those APIs...to combine with the requirements of the telecom

If you use "REST API" it means that you use high level API and talk with the network through gateways which take off most problems.
But if you talk with SMSC or USSDC directly via SMPP, then the rule number one is "send acknowledge packets(responds) as soon as possible", or it will resend you SMS again. USSDС will hold signal link till you send answer to client. And so on. But it isn't your case... you use gateways that keep network in safety.
Location services are not so capricious.

Related

Send requests to Google Assistant from Java

We have developed a Google Action with Dialogflow that responds to personalized requests from users and performs some tasks that require a certain amount of time, usually several minutes.
Our goal is to announce the result of the tasks using the "Broadcast" feature of Google Assistant, but we can't find a way to send the command to Google Assistant.
Our agent receives the user's request and launches a Java application that executes the task, so it is the Java application that must communicate with Google Assistant when the process is finished.
From the Java application we can communicate with the agent using Dialogflow RPC API, but not with Google Assistant.
Is there any way to send the request to Google Assistant from the Java app? or... since we can communicate with our Google Action Agent... how could we send the request through the agent?
In other words, could the agent communicate with google assistant to use any of its features, for example, "Broadcast ..."?
We have checked Google Assistant SDK as alternative, but we are confused about it.
Please, excuse me for my bad English.
Any help would be appreciated. Thanks!
The "Broadcast" feature is not available to user-developed Actions, and probably not a good scheme to use in any event - if users will need to wait for a while for an answer, they probably don't want the answer suddenly announced when they're not expecting it.
Actions are typically meant to be conversational, rather than taking a while to reply with the answer, which is why there is a 5 second limit on how long the fulfillment has to do processing. If you do need to take a while, you have a few options available to you:
First is that you can use some other method outside of the Assistant to deliver the answer - possibly using something like Firebase Cloud Messaging or sending email to the user.
Similarly, you might be able to use notifications. In this scenario, your Java program would send a notification through the Assistant to the user when the information is available and store the result. The user can then activate the notification to continue the conversation and get the result. This has the advantage that the answer isn't just blurted out, possibly when the user isn't ready for it, but does have a downside that speakers don't (yet) support notifications.
You can also look into using a Media Response to set up a way for you to poll for new messages periodically. Under this scheme, you would fire off the Java program which would get the result and then store this in a way your fulfillment server can access. In your reply to the user saying you're working on the results, you would include a Media Response for some audio that plays for, say, 15 seconds. When the audio finishes, your Action will be called again and you can check to see if the result is available. If so, you send the result and continue or end the conversation. Otherwise, just send a Media Response.

Get data from FIX protocol in mobile apps

I need to create an app which get's it's displayed data from FIX protocol in real time.
How would be best practice to accomplish this?
Should the mobile app read directly the FIX data?
Should I put a server in between to transform the FIX data to JSON or something more prepared for service consumption? And if so... how would I do it to not lose the real time? Creating a websocket in Java which for the mobile apps to call and that websocket would transform the FIX data to JSON that way?
I never worked with the FIX protocol before by the way.
So like, the question is, can you put a FIX client on a mobile phone? I guess you can, and I am sure it will happen soon.
Yes, anything can read FIX data, it's simply text stream name value pairs, where the name is a numbered tag to identify some particular financial data or process, as agreed between the FIX community as a whole, or between direct counterparties using messaging data dictionaries.
These days you could try using SBE throughout, including at the mobile client, but for now current practise is yes, to use JSON for client endpoints (where the JSON name is not a FIX tag but the underlying FIX field name so it's easier for people to understand) and pass JSON messages to the mobile device in some kind of REST data processing.
So yeah, you'd have a FIX server (if you are new to FIX try QuickFix) to connect with your provider. Then what you need between that server and mobile clients is asynchronous messaging. Consider a quote request is not a simple request / response where you can block the request thread until a single response is received, it's a request followed by a stream of many responses. So you want an event handler style to route the responses back to clients asynchronously. With many mobile UI clients making requests and receiving responses you need to demultiplex the responses from the 1 FIX server out to the many mobile clients. That's something that QuickFIX itself kind of already does using a session layer. You need to do the same using sessions or identifiers in the messages you're passing around.
Yeah I guess websockets are intended to be that solution for real time. You could write a native mobile app though, using something like node or react to handle the message events.

Google Cloud Messaging single request

I've been searching over the web but I can't seem to find some straight answer.
I've got an application developed and now I need to add it notifications. My issue is that I need each device to be unique and send each one of them a different notification. (I don't mean ONE UNIQUE notification) but I mean to send some users a notification and others don't.
How can this be done?
As a part of the GCM infrastructure, you will need to have your own web application that will allow individual instances of your app to register. When this happens, your Android application will pass to the web application a registration ID along with any additional information that you can use to identify the device. Once you have this information stored, you can pick and choose which device should receive your notification.
See: Architectural Overview section in the http://developer.android.com/google/gcm/gcm.html

How does UPnP works?

I am doing an app which renders a web page in an upnp enabled television set. I have implemented the UPnP with Cling UPnP
Now I am not sure how to proceed further. How is the connection between the Television and the device attained? Is it a socket connection? has anybody got any samples or tutorials regarding this topic which help me to implement UPnP streaming.
I have searched on google but it mainly points to existing apps available in google play.
Thanks
Ok, so the service descriptor xml (SCPD) contains <actionList> of <action>s with their parameters, which can be in (to the TV) or out (will be in the TV's response to the action). You need to "call" the action, which means that Cling serializes it to SOAP RPC and sends it to the device as HTTP request. In the response, you will get the overall result of the call as with plain HTTP, 200 for OK, 500 for Bad Request, etc. Each code has a specific explanation in context of the particular action call. The response will also hold out parameters as specified in the SCPD.
But this all is not as much of your interest when using an abstraction library like Cling. It will do everything for you. Disclaimer: i am not familiar with Cling, just with enough other UPnP libs to know where to look for things.
As a TV set, the 3 services you mention will be undoubtely AVTransport,ConnectionManager and RenderingControl. So to present a simple example which will actually do something observable on the TV, let's call RenderingControl.SetVolume. The method you need is org.teleal.cling.support.renderingcontrol.callback.SetVolume. I can't help you to the level of knowing where to obtain the Service parameter, but you should be able to figure out.
I am not saying that you don't need to know how UPnP works under the hood. Grabbing the UPnP specs bundle and reading at least the DeviceArchitecture pdf is indispensable. And you will definitely need the specs to understand the more complicated services like AVTransport. Hint: don't care about InstanceID and ConnectionID. It's all 0 unless you connect to a very advanced renderer (which the TVs nowadays are not).

Notification framework for java

I'm in the process of developing a web application (java + jsp) that can send notifications to users. The user can subscribe to multiple events generated by the application and can choose to receive the messages associated with those events via multiple channels (email, sms, growl?, messenger); perhaps different messages through different channels; perhaps a daily message digest. Everything must be configurable by the user. Is there some framework that deals with this?
Rmarimon, check out Boomerang Notification Framework from Fuel9. With some basic SQL skills you can quickly develop dynamic notifications (email, twitter, fax etc). Good luck!
/M
Take a look at Amazon Simple Notification Service (Amazon SNS). It was just released (in beta). Looks pretty cool.
Agustin sends to email and SMS via twitter. Probably not exactly what you're after, but it might work.
There's also the Sun Java System Instant Messaging, which is not free.

Categories

Resources