Замена диалплана с ARI для «динамических» входящих расширений - PullRequest
0 голосов
/ 27 августа 2018

Я экспериментирую с интерфейсом ARI в Asterisk (v15.5). Мне удалось относительно хорошо разместить и управлять исходящими звонками, и сейчас я пытаюсь справиться с входящими звонками.

У меня нет плана звонков на моем тестовом сервере; в этом не было необходимости: я просто подключаюсь по каналам ARI, Originate и соединяю их вместе. Однако попытка отправить входящий вызов на сервер выдает ошибку

chan_sip.c: 26513 handle_request_invite: вызов от «upstreamserver» (192.168.x.x: 5060) к расширению «12345» отклонен, поскольку расширение не найдено в контексте «default».

Достаточно справедливо - Asterisk не знает о расширении 12345 или о том, что с ним делать. Я мог бы, конечно, добавить это в extensions.conf, поместить расширение в стазис и позволить моему приложению справиться с этим: однако, у этого есть два недостатка:

  • У нас есть потенциально сотни входящих номеров, и нам нужно было бы своевременно обновлять план набора
  • Нам бы хотелось, чтобы к серверу подключалось несколько приложений ARI: похоже, нам необходимо указать конкретное имя приложения для каждого расширения

В идеале, я хотел бы использовать ARI, чтобы программно сообщить Asterisk: эй, Asterisk, я приложение ARI, дайте мне знать, если есть какие-либо вызовы для расширения 12345, и я позабочусь о них для вы . Есть ли в настоящее время способ сделать это, или он вернулся к редактированию плана набора и ручному указанию его для моего приложения?

1 Ответ

0 голосов
/ 28 августа 2018

Если вы хотите контролировать все через ARI, вы должны сделать что-то вроде этого

[default]
exten => _.,1,Noop(need ban this <${CHANNEL(recvip)}>);use fail2ban
exten => h,1,Hangup
[from-trunk]
exten => _.,1,Stasis()
exten => h,1,Hangup

Вы не должны использовать контекст по умолчанию в ваших пирах / расширениях

Вы также можете использовать динамическое в реальном времени и fastagi для управления диалпланом.

...