FAQ: Не получается сделать исходящий звонок
Вопрос
У меня не получается сделать исходящий звонок
Ответ
Прежде всего, вы должны понимать механизм того, как происходит звонок средствами Asterisk AMI. Если вкратце, то вы отдаете команду и Asterisk соединяет 2 плеча: внутренний номер и внешнего абонента.В терминах телефонии, это называется оригинацией.
Как правило, сначала Asterisk вызывает внутренний номер и после того, как пользователь поднял трубку, начинается набор внешнего абонента.
Причины, почему оригинация может не происходить:
1) Пользователь AMI не имеет прав на оригинацию.
В секции вашего AMI-пользователя, в строке прав write
не указан класс originate
Во многих дистрибутивах, даже если пользователь наделен всеми правами с помощью специального класса прав all
, все равно нужно явно указать еще и права на оригинацию.
Пример правильной настройки в статье Настройка AMI
2) Указан неверный контекст диалплана для исходящих звонков.
В зависимости от дистрибутива, контекст исходящих может быть разным. Разработчики могут назвать его на свое усмотрение, четкого стандарта нет. Есть лишь некоторые часто используемые названия: from-internal
, default
, DLPN_Common
Дистрибутивы на базе FreePBX (FreePBX Distro, Elastix) используют имя from-internal
Дистрибутив TrixBox использует default
Yeastar MyPBX использует для каждого внутреннего номера свой контекст исходящих с префиксом DLPN
.
Указание значения контекста исходящих не является обязательным, но в зависимости от реализации диалплана может требоваться его явное указание.
Например, в случае с MyPBX контекст исходящих лучше оставить пустым, чтобы не вычислять его имя по внутреннему номеру. Для FreePBX нужно явно указать from-internal