In a IMS network,if a device doesn't get 200 OK for refresh REGISTER then what will be the device behavior? - qualcomm

During testing, a device sends refresh REGISTER request to network but it didn't get 200 OK response for it. After that device send a new REGISTER request to network. So my doubt is that what device should do as the timer hasn't expired. Is it transmit the refresh REGISTER request untill timer expired or it will send a new REGISTER request.

Related

Logic Apps: HTTP trigger and response time out

I have pretty simple LA that contains just 3 actions. It has HTTP trigger, then it gets some data from SQL server and returns http response with SQL data.
Sometimes, it takes 30-50 seconds to get data from SQL but Logic App in the meantime responses with Timeout error to caller.
The execution of template action 'Response_2' is failed: the client application timed out waiting for a response from service. This means that workflow took longer to respond than the alloted timeout value. The connection maintained between the client application and service will be closed and client application will get an HTTP status code 504 Gateway Timeout.
Any idea how to increase allowed time for response?
You can turn on the Asynchronous Response in the Settings of the Response action:
When you run your logic app longer than its time limit, you will accept 202 HTTP Code first:
It will return a response contains location header:
You can request the location URL, if the status of your logic app still is running, it will return 202.
If the status of your logic app is Succeeded, then it will return the results you want.
You can refer this official document.

How do I refresh the token in a cometd client talking to a Salesforce Platform EventBus?

I'm using cometd to listen to platform events generated in Salesforce. My cometd client configuration code looks like
this.client.configure({
url: `${this.org.instance_url}/cometd/46.0`,
requestHeaders: {
Authorization: `Bearer ${salesforceToken}`
},
appendMessageTypeToURL: false
});
where the salesforceToken is obtained using the refresh token. This all works fine for a while but if there are no events for a considerable period of time (anecdotally anywhere between 6-24 hours), then my client seems to expire and no events are received. If I refresh the token and restart my listener, things start working again.
Is there a way to keep the listener active other than writing some sort of timer to restart the process every few hours after inactivity ?
You do not have to refresh the token again
Whenever there is no activity on the channel, the server closes the connection after a specific time.
In that time client receives a 403 (Unknown client) status code, and the client has to handshake again withing 110 seconds.
By default, CometD tries to reconnect without any user interaction and If the client doesn't reconnect within the expected time, the server removes the client's CometD session.
Once the connection gets reconnect, all the channel subscriptions will be removed by ComedD, and we have to subscribe to the channel again in order to receive events.
In order to do so, we have to make use of meta/Handshake callback to resubscribe to the channel again.
see https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/using_streaming_api_client_connection.htm, paragraph "After Invalid Authentication"
"Streaming API regularly validates the OAuth token or session ID while the client is connected. If client authentication is not valid, the client is notified with the 401::Authentication invalid error and an advice field containing reconnect=none. After receiving the error notification in the channel listener, the client must reauthenticate and reconnect to receive new events."

Subscribing send port request to file biztalk

I would like to subscribe request message of 2-way Send Port and write it down do HDD.
I found article, when it applied only to responses, called HOW TO SUBSCRIBE THE RESPONSE MESSAGE OF 2-WAY (REQUEST- RESPONSE) SEND PORT)
I also failed with send port group as FILE send port is Static-One-Way and second is SOAP 2-way.
Is there any trick to see at runtime what requests are going through Send port?
Your options are
Turn on Message Body Tracking on the Send Port, restart your Tracking host, and then use the BizTalk Admin Console to look at the messages.
Create a filter on the FILE port of the BTS.MessageType = <namespace>#<root> matching the message being sent to the SOAP 2-way port
The BTS.SPName mentioned in the article you linked to is useful if you want to subscribe to the response coming from the send port.

How is port redirecting done in C in Windows?

I have a project in C , in which I receive HTTP GET Requests (port 10000), process it and send appropriate response. I use winsock Libraries for network connections. Also I have a module which receives HTTPS request on a different port (port 10001). The client specifies which port it has to send to , if it is sending a http message it will send on port 10000 and if it is a https request it will send to port 10001.
Due to this I realize, that the coming request is a HTTP or HTTPS request.
There is a requirement, that the client will specify only one port number whether it is HTTP or HTTPS, i.e. it will send only on port 10000.
So now, when an HTTPS message comes on port 10000, it will be all encrypted but I want that message to go to port 10001. Is there any way to differentiate a HTTP or HTTPS request at the server level ?
If the first byte coming from client is 0x16, it's the beginning of SSL handshake. As it's not a possible start of HTTP request, you can differentiate requests by this property.

Google Application Engine resets the TCP connection

We observe that the TCP connections are sometimes reset by Google Application Engine. The exact behavior is following:
TCP handshake is done (SYN, SYN/ACK, ACK)
Http POST is sent by client
Google Application servlet sends RST
See the attached screenshot. Any reason for that? Should we simply send the POST request again on client?
BR
STeN

Resources