VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

feature во время dial не срабатывает до ответа

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
Glukinho
Сообщения: 661
Зарегистрирован: 07 янв 2011, 20:05

feature во время dial не срабатывает до ответа

Сообщение Glukinho »

Всем привет.

Мне нужно, чтобы во время выполнения Dial (во время гудков) можно было нажать звездочку, тогда вызов автоматом пойдет на мобильный (удобно, если точно знаешь, что человека на месте нет, не нужно ждать всё время до автоматической переадресации).

Проблема в том, что нужное мне приложение не срабатывает, пока вызов в Dial не будет отвечен. Нужный DTMF прилетает, это видно в консоли, но реакции на него нет.

features.conf:

Код: Выделить всё

[applicationmap]

tomobile => *,self/caller,Macro,tomobile
extensions.conf:

Код: Выделить всё

[globals]

DYNAMIC_FEATURES => tomobile
Лог нажатия * во время дозвона, feature не срабатывает: http://pastebin.com/2uU54btN

Лог нажатия *, когда звонок отвечен, feature сработала: http://pastebin.com/VbBDiSK8

Asterisk 11.8.1. На 1.4 feature срабатывала и во время дозвона, то есть так, как мне надо.

Есть у кого-нибудь идеи, как заставить Asterisk активировать feature в процессе дозвона по Dial, а не только после ответа?
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: feature во время dial не срабатывает до ответа

Сообщение virus_net »

Сам это пока никогда не пользовал, доку ранее читал, но не вчитывался ибо не нужно было.
Если смотреть в доку:
Asterisk config features.conf
Можно увидеть:
The syntax for declaring a dynamic feature is the following (Asterisk 1.8+):
;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>], \
; <Application>[(<AppArgument1>,<AppArgument2>)][,MOH_Class]
The syntax for declaring a dynamic feature is the following (Pre-1.8):
;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>], \
; <Application>[,<AppArgument1>|<AppArgument2>[,MOH_Class]]
Т.е. различие между 1.4 и 11 в этом плане уже точно есть.
Так же из этого получается что в вашем случае "tomobile" оказывается на месте указания MOH_Class
Получается что по идее, исходя из Application:
[Syntax]
Macro(name[,arg1[,arg2[,...]]])
То на мой взгляд должно было бы быть так:

Код: Выделить всё

tomobile => *,self/caller,Macro(tomobile),default
Могу оказаться не прав - нужно проверять

Так же я бы попробовал бы использовать:
New in 11
Two new functions have been added: FEATURE and FEATUREMAP. FEATURE lets you set some of the configuration options from the [general] section of features.conf on a per-channel basis. FEATUREMAP lets you customize the key sequence used to activate built-in features, such as blindxfer, and automon.
The FEATURE and FEATUREMAP dialplan functions allow you to set some features.conf options on a per channel basis.
а не указание в globals, дабы проверить будет ли разница в поведении.
У меня какие то такие мысли.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Glukinho
Сообщения: 661
Зарегистрирован: 07 янв 2011, 20:05

Re: feature во время dial не срабатывает до ответа

Сообщение Glukinho »

Спасибо!

Разницы между двумя вариантами никакой:

Код: Выделить всё

tomobile => *,self/caller,Macro(tomobile)
или

Код: Выделить всё

tomobile => *,self/caller,Macro,tomobile
Оба валидны и оба срабатывают, когда Dial отвечен и не срабатывают, когда дозвон еще идет.

Функции FEATURE и FEATUREMAP касаются только встроенный фич (automon, parkcall и так далее), а не созданных отдельно.

Задавать переменную DYNAMIC_FEATURES я пробовал и в процессе обработки звонка, а не в globals, и __ ее предварял, поведение не меняется.
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: feature во время dial не срабатывает до ответа

Сообщение virus_net »

Ну тогда остается или гуглить далее или смотреть в исходники, т.к. то что разница точно есть очевидно уже сейчас.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Glukinho
Сообщения: 661
Зарегистрирован: 07 янв 2011, 20:05

Re: feature во время dial не срабатывает до ответа

Сообщение Glukinho »

Подсказали на forums.asterisk.org: http://forums.asterisk.org/viewtopic.ph ... 35&start=0
Работает!
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: feature во время dial не срабатывает до ответа

Сообщение virus_net »

Набор через Local и вставка Answer перед Dial, как говорится "вот оно!". Зачастую гениальное решение самое простое :)
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

Re: feature во время dial не срабатывает до ответа

Сообщение Wapo »

Только мне одному показалось, что изначально нужно было answer не давать?
Glukinho
Сообщения: 661
Зарегистрирован: 07 янв 2011, 20:05

Re: feature во время dial не срабатывает до ответа

Сообщение Glukinho »

Так изначально никто и не давал...
Glukinho
Сообщения: 661
Зарегистрирован: 07 янв 2011, 20:05

Re: feature во время dial не срабатывает до ответа

Сообщение Glukinho »

По-настоящему спасла опция d команды Dial:
d: Allow the calling user to dial a 1 digit extension while waiting
for a call to be answered. Exit to that extension if it exists in the
current context, or the context defined in the ${EXITCONTEXT} variable,
if it exists.
NOTE: Many SIP and ISDN phones cannot send DTMF digits until the
call is connected. If you wish to use this option with these phones,
you can use the 'Answer' application before dialing.
В том же контексте сделал:

Код: Выделить всё

exten => *,1,Macro(tomobile)
Получилось именно то, что нужно.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH