UNPKG

sip-mrcp

Version:

A SIP/MRCP module that permits to write MRCPv2 client/server apps and tools

54 lines (47 loc) 1.78 kB
const sip_mrcp = require('../index.js') const mrcp = require('mrcp') const log = require('tracing-log') const server = new sip_mrcp.SipMrcpStack({ sip_options: { // see available options at https://github.com/kirm/sip.js/blob/master/doc/api.markdown address: '127.0.0.1', port: 8092, publicAddress: '127.0.0.1', }, rtp_options: { local_ip: '127.0.0.1', local_ports: [10002], }, mrcp_options: { local_port: '9002', }, new_session_callback: new_session => { var payload = { id: 0, codec_name: 'PCMU', clock_rate: 8000, } new_session.accept(payload) new_session.on('mrcp_msg', msg => { if(msg.type == 'request' && msg.method == 'SPEAK') { const response = mrcp.builder.build_response(msg.request_id, 200, 'IN-PROGRESS', { 'channel-identifier': new_session.data.mrcp_uuid, 'speech-Mmrker': 'timestamp=857206027059' }) new_session.send_mrcp_msg(response) const data = Buffer.alloc(10) const marker_bit = 0 for(var i=0 ; i<5 ; i++) { new_session.send_rtp_data(data, marker_bit) } setTimeout(() => { const event = mrcp.builder.build_event('SPEAK-COMPLETE', msg.request_id, 'COMPLETE', { 'channel-identifier': new_session.data.mrcp_uuid, 'completion-cause': '000 normal', 'speech-marker': 'timestamp=857206027059', }) new_session.send_mrcp_msg(event) }, 200) } }) }, })