Я использую Twilio для настройки центра входящих вызовов.Я использую софтфоны SIP в качестве своих конечных точек.У меня практически все работает так, как я хочу, но есть серьезная проблема при попытке начать «конференцию» с одной из моих конечных точек sip.
Представитель службы не слышит слова вызывающих абонентов примерно до 7 секундв вызов.Входящий абонент может слышать представителя службы просто отлично.Это только проблема с «Конференцией».Приведенный ниже код также иллюстрирует прямое соединение посредством набора добавочного номера, где задержка соединения вообще не возникает.
// Inbound Call to Twilio Number
routes.post('/twilio/phone/inbound', (req, res) => {
const twilioVoice = new VoiceResponse();
const gather = twilioVoice.gather({
action: '/twilio/phone/enqueue',
numDigits: 3,
timeout: 2
});
gather.say('For general inquiries, press 1. If you know the extension of the person you are trying to reach, please enter it now.', {
loop: 5
});
twilioVoice.say('Sorry, I did not get a response. Good bye.');
twilioVoice.hangup();
res.type('text/xml');
res.send(twilioVoice.toString());
});
// Second endpoint to process response from above
routes.post('/twilio/phone/enqueue', (req, res) => {
var pressedKeys = req.body.Digits;
var twilioVoice = new VoiceResponse();
if (pressedKeys.length === 3) {
console.log("Direct call via extension.")
twilioVoice.say(`Please hold while we attempt to connect you to extension`);
twilioVoice.dial().sip('sip:employee@businessname.sip.us1.twilio.com');
// Once connected, both parties can hear each other immediately.
res.send(twilioVoice.toString());
} else {
twilioVoice.enqueue({
workflowSid: process.env.WORKFLOW_SID,
});
res.type('text/xml');
res.send(twilioVoice.toString());
}
});
// Workflow AssignmentCallbackUrl
routes.post('/twilio/phone/assignworker', (req, res) => {
res.type('application/json');
// The service rep does not hear the callers words until about 7 seconds into the call
res.send({
instruction: "conference",
to: "sip:employee@businessname.sip.us1.twilio.com"
});
});