extensions.conf
exten => 7001,1,NoOp(entering ari)
exten => 7001,2,Stasis(myapp)
exten => 7001,3,Hangup()
exten => 7002,1,Answer()
exten => 7002,2,Dial(PJSIP/7002,60)
exten => 7002,3,Playback(vm-nobodyavail)
exten => 7002,4,VoiceMail(7001@main)
exten => 7002,5,Hangup()
external media not sending rtp chunks to server
debug log
– Executing [7001@internal:1] NoOp(“PJSIP/7002-00000000”, “entering ari”) in new stack
– Executing [7001@internal:2] Stasis(“PJSIP/7002-00000000”, “myapp”) in new stack
– Called 0.0.0.0:5004/c(ulaw)
– UnicastRTP/0.0.0.0:5004-0x7f2fc8005370 answered
– Channel PJSIP/7002-00000000 joined ‘simple_bridge’ stasis-bridge
– Channel UnicastRTP/0.0.0.0:5004-0x7f2fc8005370 joined ‘simple_bridge’ stasis-bridge
ari.connect(${ARI_HOST}/ari
, ARI_USER, ARI_PASSWORD)
.then((arinew) => {
console.log(“ Connected to Asterisk ARI”);
// console.log(arinew.externalMedia);
arinew.once(‘StasisStart’, (event, channel) =>{
console.log(“Getting user”);
// console.log(event);
// console.log(channel.externalMedia);
channel.answer();
// channel.play(“hellow-wrold”);
arinew.channels.externalMedia({
app: ‘myapp’,
external_host: ‘0.0.0.0:5004’,
format: ‘ulaw’
}).then((response)=>{
// console.log(response);
// const bridghe = arinew.channels.create({type: ‘mixing’});
// console.log(bridghe);
// arinew.bridges.list().then((x)=> console.log(x)).error((errr)=> console.log(errr));
arinew.bridges.create({type: ‘mixing’})
.then((bridge)=> {
console.log(bridge);
bridge.addChannel({channel: [channel.id, response.id]})
.then((x)=>{console.log("successfully added ");
console.log(x);
})
.error((y)=> console.log(“error creting link”));
// bridge.startMoh();
console.log(bridge.startExternalMedia);
});
//bridge = arinew.bridges.create({type: 'mixing'});
//console.log(bridge);
//bridge.addChannel({channel: [channel.id, response.id]})
//.then((response1)=> console.log("add channel"))
//.error(()=> console.log("error in bridge creating"));
channel.on('ChannelHangupRequest', ()=>{console.log("cealn");})
}
).error((err)=> console.log(err));
});
arinew.once('StasisEnd', (event, chennel)=>{
console.log("end");
});
// Listen for new calls
// Start ARI application
arinew.start('myapp');
})
.catch((err) => {
console.error(“ Error connecting to ARI:”, err);
});