nimbleape / asterisk-dialogflow-ari-bridge Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Hi,
I found the issue causing the loop in the RTPserver.js
The MQTT message does not hold the port so in the bride.js we seemed to have a problem with the code below.
this.emit('newStream', {
roomName: channel.dialplan.exten,
port: externalMediaUdpSourcePort,
callerName: callerName,
channelId: channel.id
});
It seems the externalMediaUdpSourcePort is null and not being pulled from the mediastream. I think this has to do with the new UNICAST_RTP setup. I have not found a resolution yet but i looks like this also the reason the rtp server on my end is not transmitting anything to google
Hope this helps something
Regards
Jorg Muskens, The Netherlands
In order to honour the DialogFlow endInteraction
flag, the bridge listens for MQTT dialogFlowEvent
messages emitted by dialogflow-rtp-audioserver on intent recognition and triggers an ARI continueInDialplan
to drop the call when it sees an intent with endInteraction
set.
This immediately drops the call whilst rtp-audioserver still has the DialogFlow audio in its queue to send to Asterisk so any audio emitted by the last intent is lost.
I think the fix involves having rtp-audioserver send an additional dialogFlowEvent
message when it has sent all outstanding data to Asterisk, and delaying the call drop here until we receive this.
Hi All,
I am getting this exception when I receive a message on the bridge
(node:24242) UnhandledPromiseRejectionWarning: TypeError: externalMediaChannel.externalMedia is not a function
at Bridge.addChannel (/Users/MacBookPro/emad-project/asterisk-dialogflow-ari-bridge/lib/Bridge.js:67:59)
Any idea ?
Thanks.
Sorry, I realized I put this in a closed Issue. I create a new one with references for convenience.
Hello!
I'm facing the same error.
I have a single server with public IP for all components: ubuntu 20.04, using its packages of asterisk 16.2.1, mosquitto 1.6.9, and nodejs 10.19.0.
I am running the ARI-Bridge, and the RTP-Audioserver from NimbleApe.
I have a DialogFlow agent created and running.
I think all configs are ok, checked and debugged several times.
But when I run the ARI-Bridge, an I call to the extension, I can heard a "hello-world" at the start I put for debugging, but when "ari-bridge" tries to create the externalMediaRes it fails with:
-> TypeError: externalMediaChannel.externalMedia is not a function
I am struggling for hours with this and I am stuck.
Any idea?
Thank you very much! :)
Originally posted by @lcg79 in #10 (comment)
Hi Dan,
Today a migrated to the lastest master build. I saw that the package.json file was modified and removed yarn.lock and node_modules directory/ in the hope the swagger warning were solved.
but i still have them on install. I know this not a big issue as it works but still can be adressed.
yarn install v1.22.4
info No lockfile found.
[1/4] Resolving packages...
warning ari-client > [email protected]: No longer maintained, please upgrade to swagger-client@3.
warning ari-client > [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
warning ari-client > swagger-client > shred > [email protected]: The sprintf package is deprecated in favor of sprintf-js.
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 66.47s.
I am not sure if moving to swagger 3 will break the dialogflow code and have not tested it yet.
The other two packages i believe are linked so not sure if we can ignore these.
We can address this later as it has no further impact but i would look nice if there were no warnings ๐
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.