Задать вопрос

Freeswitch. Есть примеры dialplan для исходящих вызовов?

В ближайшее время планируется купить и подключить к обычной мини-атc voip-шлюз. Разбираюсь с настройкой freeswitch (версия для win32 в virtualbox) по мануалу с voipnones, не могу написать dialplan для исходящих звонков. Есть многоканальный SIP аккаунт (в данный момент это Задарма). Добавил новых абонентов, включил их в группу voiptest. Входящие вызовы приходят на указанную внутреннюю группу номеров, а исходящие не проходят вообще.

Вот файл /conf/dialplan/office.xml:

<include>
<context name="office">
		<extension name="from-zadarma">
<!-- если нам звонят на любой номер не более 15 цифр -->
<condition field="destination_number" expression="^(\d{5,15})$">
<action application="bridge" data="group/voiptest@$${domain}"/>
</condition>
		</extension>
		<extension name="out-msk">
<!-- если мы звоним на +7********** -->
	<condition field="destination_number" expression="^(+7\d{10})$">
<action application="bridge" data="sofia/gateway/zadarma/$1"/>
<!-- кладём трубку -->
<!-- <action application="hangout"/> -->
	</condition>
		</extension>
</context>
</include>


Вот кусочек лога, где прерывается обработка:
a167a244-fce4-4725-9dc6-d43e377509ab Dialplan: sofia/internal/1101@example.com Absolute Condition [outside_call]
a167a244-fce4-4725-9dc6-d43e377509ab Dialplan: sofia/internal/1101@example.com Action set(outside_call=true)
a167a244-fce4-4725-9dc6-d43e377509ab Dialplan: sofia/internal/1101@example.com Action export(RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)})
a167a244-fce4-4725-9dc6-d43e377509ab Dialplan: sofia/internal/1101@example.com parsing [public->call_debug] continue=true
a167a244-fce4-4725-9dc6-d43e377509ab Dialplan: sofia/internal/1101@example.com Regex (FAIL) [call_debug] ${call_debug}(false) =~ /^true$/ break=never
a167a244-fce4-4725-9dc6-d43e377509ab Dialplan: sofia/internal/1101@example.com parsing [public->public_extensions] continue=false
a167a244-fce4-4725-9dc6-d43e377509ab Dialplan: sofia/internal/1101@example.com Regex (FAIL) [public_extensions] destination_number(+7123456789) =~ /^(10[01][0-9])$/ break=on-false
a167a244-fce4-4725-9dc6-d43e377509ab Dialplan: sofia/internal/1101@example.com parsing [public->public_did] continue=false
a167a244-fce4-4725-9dc6-d43e377509ab Dialplan: sofia/internal/1101@example.com Regex (FAIL) [public_did] destination_number(+7123456789) =~ /^(5551212)$/ break=on-false
a167a244-fce4-4725-9dc6-d43e377509ab 2015-06-26 19:09:10.167968 [DEBUG] switch_core_state_machine.c:216 (sofia/internal/1101@example.com) State Change CS_ROUTING -> CS_EXECUTE
a167a244-fce4-4725-9dc6-d43e377509ab 2015-06-26 19:09:10.167968 [DEBUG] switch_core_session.c:1388 Send signal sofia/internal/1101@example.com [BREAK]
a167a244-fce4-4725-9dc6-d43e377509ab 2015-06-26 19:09:10.167968 [DEBUG] switch_core_state_machine.c:528 (sofia/internal/1101@example.com) State ROUTING going to sleep

Полностью: pastebin.com/b3gux7rS

Я не понимаю, почему в логе вообще нет "^(+7\d{10})$". Заменял на 8 (должен был услышать хотя бы, что номер не верен), пробовал перекладывать план в подпапки, закомментировал application="hangout" - никаких изменений.

Заодно второй вопрос: сейчас (group/voiptest@$${domain}) при входящем звонит вся группа, как послать звонок только на первый (или случайный) свободный зарегистрированный в сети внутренний номер из этой группы?
  • Вопрос задан
  • 3592 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
возможно вызов попадает не в тот контекст
приведите полный лог и покажите настройки юзера 1101@example.com
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Cat_Matroskin

перекроет вашу маску для задармы, надо делить контексты для входящих и исходящих.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы