Twilio Recording Ongoing call - twilio-api

I have to achieve below functionality using twilio recording and gathering API. I am struggling to achieve the exact goal can any one please help.
Steps :
1 - Agent will be on an existing call with customer.
2 - Agent dial twilio number for recording twilio should ask verification code.
3 - Agent will merge the existing call with twilio call.
4 - Agent will enter verification code.
5 - Twilio should accept call if verification code is valid and start recording existing merge call.
6 - Agent will stop call as soon as agent stops/disconnects call recording will be received by callback from twilio.
I am trying to initiate call using twilio call forward with security code when there is ongoing call between two cells.. e.g. I am dialing +91976693XXXX from my cell +91866835XXXX and we both on call.. Then we are dialing the twilio number "+1 813-501-XXXX " added webhook which returning the response Twiml :
<Response>
<Gather action='http://example.com/Modules/DisputeSuite/Customers/ValidatePin.aspx' numDigits='4'>
<Say>Please enter valid pin.</Say>
</Gather>
</Response> on Action page if pin is correct i am sending response Twiml to initiate call : <Response>
<Dial record='record-from-ringing-dual' recordingStatusCallback='http://example.com/Modules/DisputeSuite/Customers/ConferenceResponce.aspx'><Number>+91976693XXXX</Number></Dial>
</Response>
All is working fine if i enter pin and then merge the call. But if i merge call first and then trying to enter pin then is not forwarding pin to action page. Please help to resolve the issue. Thank you

Related

How to send text messages in Jitsi?

I'm developing a standard video call application using Jitsi; I want an additional feature to let the other party know something lik "I'll be late a few minutes"
Jitsi has a built-in text chatting; but I don't know how it can be used outside the Jitsi call.
You can develop with "external_api.js". when current user joined the video jitsi triggers
participantJoined - event notifications about new participants who
join the room. The listener will receive an object with the following
structure:
api.on(‘participantJoined’, (object) => join(object.id));
resource
method will be triggered for each participant. Collect and store the participant "id"'s from there. Then use
sendEndpointTextMessage - Sends a text message to another participant
through the datachannels.
api.executeCommand('sendEndpointTextMessage', 'receiverParticipantId', 'text');
resource2
this method for sending messages for each participant.
You can develop with "lib-jitsi-meet"(lib-jitsi-meet) library and then you can use "sendTextMessage(text)" function.

return null notificationId in NotificationHub

I use Microsoft.Azure.NotificationHubs in VS2017. when I try to send a notification by SendAppleNativeNotificationAsync method this doesn't return notificationId, this is null. I have the Standard pricing for Notification Hub
enter image description here
Are you using Test Send by any chance? Please note that NotificationId is returned NULL while doing a test send. This is because you can get the result of Send operation in the output of Send* method itself. NotificationOutcome.Results property will have list of registrations this Send* was sent to. (Note that test sends are only meant for troubleshooting purposes and they target a maximum of 10 devices. Read through the above post for more info).
I worked with REST API I did a simple test and it worked correctly Send an APNS Native Notification, azure-notificationhubs here I found everything necessary for my problem

Can’t Override Default Cancel Intent

Is there anyway that I can add a custom message when user says ‘Cancel’ or ‘Exit’ to end the conversation?
I have added intent for these utterances and connected it with my webhook but the message I send back in app.ask() is not displayed or read.
This is currently a known issue and you cannot override these words currently. You can handle handle other words like "quit", "finish", "exit", etc.
Done using API.AI. (see the picture)
http://i.imgur.com/WDQWmwb.png
As per this specification
Conversation Exit google assistant
probably you will only able to do an app.tell() in your webhoook because this must be a final Intent (you can tell something to user but not ask and waiting for a response), see point five of suggested configuration:
Enable Set this intent as end of conversation
In every case if you use a weebhhok take care: The maximum execution time allowed for conversation exit requests is 2 seconds

get status of SIP invite of Freeswitch

I am new to Freeswitch.
I have successfully connected two FSs. First FS redirects to second FS.
Now I would like to get the information about the SIP invite; whether it is received at 2nd FS or not programmatically, when call is made to 1st FS. I am open to scripting option as well apart from configuring the xml files.
You can write script which will listen for channel states on ESL interface of second Freeswitch, when call will hit extension of it you should get CHANNEL_CREATE event:
https://wiki.freeswitch.org/wiki/Event_List#Channel_events
More about ESL:
https://freeswitch.org/confluence/display/FREESWITCH/mod_event_socket

Separate Twilio caller ID

I have many e-shops, every shop has it's own ladline twilio phone number.
All phone numbers redirect calls to my single mobile phone.
The problem is - I don't know from which shop the call is.
Is there any solution to tag somehow redirected calls?
I need to know that client is calling to shop1, so I would not ask him which shop is he calling.
If my mobile phone could handle 10 SIM cards, I would know which SIM is accepting the call.
Thanks
Twilio Evangelist here. I think the best way to do this is with a 'Whisper', using <Number url=''>.
The idea is that when you use a <Dial> you can specify the number as just test:
<Response>
<Dial>+447123456789</Dial>
</Response>
But you can also use the <Number> tag:
<Response>
<Dial>
<Number>+447123456789</Number>
</Dial>
</Response>
This allows you to use the attributes of <Number>, and one of those is url=. This can point to some TwiML that is executed on the called parties side. As a result, the customer calls your shop, which calls your mobile, which runs TwiML such as:
<Response>
<Say>Incoming call from shop 'Owl Emporium'</Say>
</Response>
Then you know the call is from 'Owl Emporium' instead of 'Strigiformes R Us' (or whatever your shops are called). The customer who called you will not hear this message, we call it a 'whisper'.
An alternative solution is to use the callerId attribute so that the call is from one of your shops. You can then add this to your address book, but you won't have the customers number available as easily, so you'll need to grab that from your application if you want to call them back. It depends on which works best for you.
Hope this helps!