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