Accountcode not seen in Asterisk Stasis application - java

I have a java stasis application on Asterisk 14 using ari4java. It mostly works great. I am now trying to receive an external call and send it to a queue. I do following
Incoming call enters Stasis
Create bridge
Add first call(channel) to bridge
Create channel
Add second channel to bridge
Dial( secondChID, "Local/2601", 30)
All this works. But when one of the members of the queue answers, I get no event showing the number/name .
I added a subscriber to the queue device and did receive som events from the queue, but there is no way to associate that call with my original first and second call.
So I tried using accountcode. But no matter what I try, accountcode is always empty in all stasis events even if I force an accountcode in the dialplan prior of it going into to stasis.
Has anyone been able to do this using ARI?
Regards,
Sven

You should adress that to your java lib developers. Account code is ok when it applicable. In most cases you should use actionid and uniqueids.

Related

Send proactive message without prior interaction

I use this sample: 16.proactive-messages - as the base for my bot and it works fine, but I'd like to extend it, so that it can send messages in a group chat without anyone interacting with it first (like sending a "Hello I'm up!" message at startup), because currently it can only respond if someone has mentioned the bot after it has initialized.
Perhaps there is a proper way to get the group chat(s) where the bot resides at the bot initialization?
I've answered before some tips on Proactive messaging, please see here for that.
To answer your question though, the bot can definitely start the engagement, either by replying to an existing message in a group chat or starting a completely new thread in the chat. However, it does require to have been installed initially, either by a user or programmatically (e.g. Graph API). That part only needs to be done once, then you can capture the conversation reference and use it again anytime thereafter. That is shown in the sample I link to in my other answer I referenced above.
It's not possible to send proactive message without prior interaction.
Sending a proactive message is different from sending a regular message. There's no active turnContext to use for a reply. You must create the conversation before sending the message.
Ref Doc: https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/send-proactive-messages?tabs=dotnet

How to detect API call from Zapier?

Is there any way to detect API call from Zapier to my app?
I've created two zaps on Zapier. Creating tasks from Wrike to MyApp and vice versa.
I got infinite loop, because when I create task on Wrike it is automatically created on MyApp. But than Zapier detects new task on MyApp and creates new one (same task) in Wrike and so on.
I was thinking to add new field in task object (createdFromZapier) and filter by that field, but is there any other way to handle this?
Here is answer from Zapier team:
There isn't a great way to do this — at best, you could set the User Agent header within your developer integration and then inspect the header on your API server side to detect when a request is coming from Zapier.
We have a help guide on avoiding Zap loops at https://zapier.com/help/troubleshoot/behavior/zap-is-stuck-in-a-loop which might help.

Is it normal in netty for bidirectionnal communication on multicast to have to create 2 bootstrap?

I am not new to netty, even with muticast, but this is the first time I need to receive and send at the same time for a multicast program.
I need to code something that could be compared to mDNS. So every instance of my program need to reply to queries, and as such need to be able to receive query and send a reply (in multicast udp).
But the problem is that I can't send a packet without using connect() on the channel that the bootstrap class gives me, and when I do so, it seems I can't receive anymore.
So is it normal to have to create 2 bootstrap, with the only difference is that for the send one I have to connect the channel, and the receive one I must not to it.
It works, but I would like to know if it the right way to do it.
Thanks.
Note: using Netty v4.1.34.Final on JVM 1.8u181
You should be able to send by using DatagramPacket(...) and specific the remote address in the constructor.

Esper: Get name/user object of statement inside the listener update method

I'm attempting to build an application that dynamically creates and destroys EPStatements at runtime, the listener is set to send an e-mail whenever a statement matches on the data stream. The recipient(s) of that e-mail may change based on which statement matched.
Therefore, I have an UpdateListener in Esper that is listening to multiple EPStatements. Is there any way for me to figure out which of the multiple EPStatements sent the data to the update method so that it will know where to send the e-mail?
Thanks in advance for your help.
You can use the StatementAwareUpdateListener which provides the EPStatement as well.

How to Filter calls in NOKIA N73

I am am new to mobile app development. But i would like to know if this is possible to intercept incoming calls on my N73 using code like Java or C++?
My second question is if this is possible then can we prevent the phone from ringing with a specified phone number from a black listed contact???
I've seen a lot of apps doing this task but i am interested in knowing if this is feasible & how this is accomplished.
Thanks in Advance.
In C++ you can use CTelephony from etel3rdparty. Use NotifyChange() to subscribe to EVoiceLineStatusChange events. On an EStatusRinging event you can call GetCallInfo() to retrieve the remote party information, including phone number, and then decide whether to reject the call or let it keep ringing.
As far as I know, the CTelephony API does not have a direct method of rejecting a call but you can achieve almost the same with AnswerIncomingCall() followed by HangUp(). Your executable will need the NetworkServices capability.
A more hackish way to reject the call could be to use RWsSession to simulate pressing the red key (end key): call SimulateRawEvent() to send TRawEvent::EKeyDown and EKeyUp events on EStdKeyNo, with some delay between the events. In this case your executable will also need the SwEvent capability.

Categories