How to connect AGI to http server?

Hello everyone. Hope you are doing well.

Currently, I am trying to connect AGI to http server.
Here is my extensions.conf file:
[default]
exten => _[+*0-9].,1,Agi(agi://127.0.0.1:5050)
exten => t,1,Hangup()
exten => 11010,1,Answer()
same => n,Echo()
same => n,Hangup()

This is for AGI HTTP server:
const AGIServer = require(“ding-dong”);

const handler = async (context) => {
console.log(“AGI context->”, context);
}
const agi = new AGIServer(handler);
agi.start(process.env.APP_PORT, () => {
console.log(
AGI server initialized. Listening on port ${process.env.APP_PORT}...
);
});

But I can’t get any logs from HTTP server.

Any help would be appreciated.

AGI doesn’t use HTTP, it is its own protocol.

What ACTUALLY happens when you attempt it? Does the call enter Asterisk and AGI? Does it connect? Is the environment APP_PORT set to 5050? Does the AGI application say it is listening?

Thanks for your quick reply.

I can’t get any logs and not connected. Regarding the APP_PORT, it is set to 5050.
And AGI application is not getting any event.
How can I fix it?

What does the Asterisk console show?

Here is logs what i can see in Asterisk CLI:
<PJSIP/2011000-0000003c>AGI Tx >> agi_request: agi://127.0.0.1
<PJSIP/2011000-0000003c>AGI Tx >> agi_channel: PJSIP/2011000-0000003c
<PJSIP/2011000-0000003c>AGI Tx >> agi_language: en
<PJSIP/2011000-0000003c>AGI Tx >> agi_type: PJSIP
<PJSIP/2011000-0000003c>AGI Tx >> agi_uniqueid: 1736875764.60
<PJSIP/2011000-0000003c>AGI Tx >> agi_version: 18.15.0-gc-565e9058
<PJSIP/2011000-0000003c>AGI Tx >> agi_callerid: 1000
<PJSIP/2011000-0000003c>AGI Tx >> agi_calleridname: George-Test
<PJSIP/2011000-0000003c>AGI Tx >> agi_callingpres: 0
<PJSIP/2011000-0000003c>AGI Tx >> agi_callingani2: 0
<PJSIP/2011000-0000003c>AGI Tx >> agi_callington: 0
<PJSIP/2011000-0000003c>AGI Tx >> agi_callingtns: 0
<PJSIP/2011000-0000003c>AGI Tx >> agi_dnid: 1099
<PJSIP/2011000-0000003c>AGI Tx >> agi_rdnis: unknown
<PJSIP/2011000-0000003c>AGI Tx >> agi_context: t-201
<PJSIP/2011000-0000003c>AGI Tx >> agi_extension: 1099
<PJSIP/2011000-0000003c>AGI Tx >> agi_priority: 1
<PJSIP/2011000-0000003c>AGI Tx >> agi_enhanced: 0.0
<PJSIP/2011000-0000003c>AGI Tx >> agi_accountcode: 1000
<PJSIP/2011000-0000003c>AGI Tx >> agi_threadid: 140009280706240
<PJSIP/2011000-0000003c>AGI Tx >>
<PJSIP/2011000-0000003c>AGI Rx << get variable ATTENDEDTRANSFER
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=0
<PJSIP/2011000-0000003c>AGI Rx << set variable CDR(agiuniqueid) “1736875764.60”
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1
<PJSIP/2011000-0000003c>AGI Rx << get variable CALLEDNUMBER
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=0
<PJSIP/2011000-0000003c>AGI Rx << set variable __CALLEDNUMBER “1000”
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1
<PJSIP/2011000-0000003c>AGI Rx << get variable CHANNEL(pjsip,remote_addr)
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1 (89.187.161.220:64148)
<PJSIP/2011000-0000003c>AGI Rx << verbose “[1736875764.60] Source IP address: 89.187.161.220:64148” 2
== agi://127.0.0.1: [1736875764.60] Source IP address: 89.187.161.220:64148
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1
<PJSIP/2011000-0000003c>AGI Rx << get variable PBX_LOOPS
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=0
<PJSIP/2011000-0000003c>AGI Rx << set variable __PBX_LOOPS “1”
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1
<PJSIP/2011000-0000003c>AGI Rx << set variable __FIRST_PBX_EXTEN “1099”
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1
<PJSIP/2011000-0000003c>AGI Rx << get variable SIPCALLIDLOGGED
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=0
<PJSIP/2011000-0000003c>AGI Rx << get variable CHANNEL(pjsip,call-id)
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1 (494f2faba1774ed2b9884b481e38b3b4)
<PJSIP/2011000-0000003c>AGI Rx << set variable CDR(inboundsipcallid) “494f2faba1774ed2b9884b481e38b3b4”
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1
<PJSIP/2011000-0000003c>AGI Rx << set variable __SIPCALLIDLOGGED “YES”
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1
<PJSIP/2011000-0000003c>AGI Rx << set variable __DISABLEFAXDETECTION “YES”
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1
<PJSIP/2011000-0000003c>AGI Rx << get variable TRANSFER_PARENT
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=0
<PJSIP/2011000-0000003c>AGI Rx << get variable TRANSFER_PARENT_CHN
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=0
<PJSIP/2011000-0000003c>AGI Rx << get variable DIDCALLED
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=0
<PJSIP/2011000-0000003c>AGI Rx << get variable CHANNEL(pjsip,call-id)
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1 (494f2faba1774ed2b9884b481e38b3b4)
<PJSIP/2011000-0000003c>AGI Rx << exec UserEvent “AGICallStarted,Call-ID: 494f2faba1774ed2b9884b481e38b3b4”
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=0
<PJSIP/2011000-0000003c>AGI Rx << get full variable ${PJSIP_MEDIA_OFFER(video)}
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1 ()
<PJSIP/2011000-0000003c>AGI Rx << set variable __PJ_VIDEO_CODECS “”
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1
<PJSIP/2011000-0000003c>AGI Rx << set variable __TRANSFER_PARENT “1736875764.60”
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1
<PJSIP/2011000-0000003c>AGI Rx << set variable __TRANSFER_PARENT_CHN “PJSIP/2011000-0000003c”
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1
<PJSIP/2011000-0000003c>AGI Rx << get variable DID_CALL
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=0
<PJSIP/2011000-0000003c>AGI Rx << get variable DYNAMIC_FEATURES
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=0
<PJSIP/2011000-0000003c>AGI Rx << set variable __DYNAMIC_FEATURES “pausecallee#unpausecallee#pausecaller#unpausecaller”
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1
<PJSIP/2011000-0000003c>AGI Rx << get variable LANGUAGE_PARENT
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=0
<PJSIP/2011000-0000003c>AGI Rx << set variable __LANGUAGE_PARENT “en”
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=1
<PJSIP/2011000-0000003c>AGI Rx << get variable DID_RECORDING
<PJSIP/2011000-0000003c>AGI Tx >> 200 result=0
<PJSIP/2011000-0000003c>AGI Rx << verbose "[1736875764.60] Found tenant ‘201’ … " 2

It seems that it is not connected to 127.0.0.1:5050
But I’ve double checked extensions.conf to set the exact url.

It is connected to some FastAGI server (and that FastAGI server is doing things), meaning dialplan sent it there. Your problem is not the FastAGI part. It is the dialplan part. If this is on your PBXware system, then I have no idea how its dialplan or details work.

I just had a chance to contacted to PBXware support team, and it seems that they don’t allow any custom dialplan. Thanks for your support.