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

перевод звонка в основной контекст

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

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

Ответить
ssds
Сообщения: 3
Зарегистрирован: 01 окт 2011, 21:54

перевод звонка в основной контекст

Сообщение ssds »

asterisk 1.8.5.0
feateres.c
функция builtin_atxfer
требуется вместо того, чтобы отправить /* Party A */ в /* Party С */, перевести обоих в основной контекст, когда /* Party B */ положил трубку.
просьба направить, какие функции для каналов использовать?


вопрос 2, как смотреть лог ast_debug( .... ) ?
asterisk -vvvvv и установка debug и verbose почему-то не помогли. может что-то делаю не так?
ded
Сообщения: 15670
Зарегистрирован: 26 авг 2010, 19:00

Re: перевод звонка в основной контекст

Сообщение ded »

1) CLI> features show

2) logger.conf
ssds
Сообщения: 3
Зарегистрирован: 01 окт 2011, 21:54

Re: перевод звонка в основной контекст

Сообщение ssds »

за logger.conf спасибо.

а CLI> features show совсем не то.
мне бы понять, есть ли где в исходниках, как чисто вернуть вызов в основной контекст, без висящих каналов и прочего мусора
ded
Сообщения: 15670
Зарегистрирован: 26 авг 2010, 19:00

Re: перевод звонка в основной контекст

Сообщение ded »

Все возможности трансферов определятся буквой t в команде Dial, и другими опциями там же.
Мне сложно ответить что-то на языке исходников, но стандартный attended transfer (средствами Астериска) выполняется в одном контексте, по крайней мере при условии /* Party A */ /* Party В */ и /* Party С */ являются внутренними extensions, AFAIK.
Какие каналы остаются висеть у Вас при attended transfer?
Люди спрашивают на asteriskguru.com
How can you add specific statements into Asterisk dialplan (extension.ael, ...) for attented transfers ?

I can see Asterisk sending Transfer or Masquerade events through AMI (in 1.6.1) but I could use an external program to catch those events but I would prefer to use dialplan instead.
И решение такое:
Today, Dial application M or U options allows macro execution when caller and callee are connected.
What if this same macro could be also launched during some later events (like attended transfer) ?
With features.conf, you could then specify :
- how lo launch an attended transfer (which key to type as today),
- if a given "feature" (attended transfer, parking, ...) should be supported by Dial macro option (for compatibilty, default could be set to none)

and with extension.conf, you could specify :
- which specific treatment (sending UserEvents, launching an external program, ...) to apply

In this puzzle, if Asterisk could support a few more standard variables like ATTENDED_TRANSFERER ATTENDED_TRANSFER_TARGET, you would everything to define and run attended transfers specific logic :

exten => 123,1,Dial(SIP/123,M(mymacro^arg1^arg2)) ; mymacro is launched upon connection and specified (in features.conf) events

[macro-mymacro]
GotoIf("x${ATTENDED_TRANSFERER}", ....
но оно базируется опять же таки на функционале features.conf
ssds
Сообщения: 3
Зарегистрирован: 01 окт 2011, 21:54

Re: перевод звонка в основной контекст

Сообщение ssds »

>> стандартный attended transfer
это вызов static int builtin_atxfer(struct ast_channel *chan, struct ast_channel *peer, struct ast_bridge_config *config, const char *code, int sense, void *data)
где-то ближе к концу данной функции осуществляется перевод звонка из А -> C (строка легко находится, там хорошие комментарии).
висящие каналы образуются легко, если меняется исходный код. надо чтобы все было корректно.

по поводу features.conf и логики стоит посмотреть, спасибо. может ничего ломать и не надо.
ded
Сообщения: 15670
Зарегистрирован: 26 авг 2010, 19:00

Re: перевод звонка в основной контекст

Сообщение ded »

Мне трудно говорить с Вами на языке Си.
IMHO - ничего ломать не надо.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH