У меня есть Asterisk 11.4.0, удаленный облачный сервер и сервер Node.js в качестве промежуточного программного обеспечения. Когда какая-либо учетная запись пытается позвонить, мне нужна информация с удаленного сервера, какую внешнюю линию использовать (или даже не делать этот звонок вообще!). Эти данные нельзя рассчитать напрямую в Asterisk. Только после ответа облака вызов должен быть продолжен. Моя очередь действий выглядит так:
Захватите инициацию вызова от Asterisk с помощью AMI на промежуточном сервере;
Отправка информации в облако для анализа;
Продолжить вызов с переданной в ответ внешней линией с помощью AMI (или не продолжать вообще);
Проблема в том, что я не знаю, как это сделать. Я думаю, что когда кто-то пытается позвонить, я могу использовать WaitExten в опции диалплана и перехватить событие Newchannel с промежуточным сервером, отправив всю информацию в облако. Когда он отвечает, я могу инициировать вызов, используя существующую очередь ожидания.
Подскажите, как подключить канал к операции Originate, когда я передаю его как параметр "channel", Asterisk не связывает эту линию с вызываемым exten.