推荐项目:FreeSWITCH ESL Bindings for Node.js —— 搭建高效通信桥梁的开源工具
// 安装FreeSWITCH ESL Bindings for Node.js
npm install freeswitch-esl-wrapper
// 使用ESL模块连接到FreeSWITCH ESL
const Esl = require('freeswitch-esl-wrapper');
// 创建一个连接到FreeSWITCH的ESL实例
const esl = new Esl({
host: '127.0.0.1', // FreeSWITCH ESL服务的IP地址
port: 8021, // FreeSWITCH ESL服务的端口号
password: 'ClueCon' // FreeSWITCH ESL服务的密码
});
// 连接到ESL服务器
esl.connect().then(() => {
console.log('Connected to FreeSWITCH ESL');
// 发送API命令并处理响应
esl.api('status').then(response => {
console.log('FreeSWITCH Status:', response);
});
// 监听来自FreeSWITCH的事件
esl.on('esl::event::CHANNEL_ANI::*', event => {
console.log('Incoming call:', event.getHeader('Caller-ID-Number'));
});
// 监听来自FreeSWITCH的DTMF
esl.on('esl::event::DTMF::*', event => {
console.log('DTMF Digit:', event.getHeader('DTMF-Digit'));
});
}).catch(error => {
console.error('Connection failed:', error);
});
// 当程序结束时关闭ESL连接
process.on('exit', () => {
esl.disconnect().then(() => {
console.log('Disconnected from FreeSWITCH ESL');
});
});
这段代码展示了如何使用freeswitch-esl-wrapper
库来连接到FreeSWITCH的ESL服务,并发送API命令、监听事件和DTMF输入。同时,它还演示了如何优雅地处理连接和错误,以及如何在程序退出时清理资源。
评论已关闭