Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / Transfer: Вернуть звонок тому, кто перевел.

Transfer: Вернуть звонок тому, кто перевел.

Сообщений: 12

Re: Transfer: Вернуть звонок тому, кто перевел.

Нашел где брать DIALEDPEERNAME.Она появляется только в
EXTEN => h
причем при выполнении трансфера DIALEDPEERNAME обнуляется. Там же в h присваиваю
exten => h,1,Set(ddpn_temp=${DIALEDPEERNAME})
и эта временная переменная уже передается дальше.

2. Почему в 1.6 не пользоваться atxfer? Он автоматически возвращает звонок, плюс на мой взгляд он более удобен чем просто переадресация вслепую

хм.. никогда не пользовался. А можно в двух словах как? Или ткни в доку.

И еще хотел спросить:
Это все работает и всегда работало если A звонит В, В трансферит на С, и при недоступности С возвращает на В.
Но как сделать когда А звонит В, А трансферит на С, и при недоступности С возвращает на А ????????
2009-01-19 19:20

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: Transfer: Вернуть звонок тому, кто перевел.

IgorG:

1. Нужно проследить почему DIALEDPEERNAME не устанвливается
2. Почему в 1.6 не пользоваться atxfer? Он автоматически возвращает звонок, плюс на мой взгляд он более удобен чем просто переадресация вслепую
Игорь, не в курсе, в 1.6 флаг t на Qeueue какой xfer вызывает? В 1.4 blind, что не удобно.
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2009-01-19 21:49

Avatara of IgorG
Откуда: Омск
Сообщений: 478

Re: Transfer: Вернуть звонок тому, кто перевел.

Oleg78, выход один, сохранять и отслеживать всё течение звонка (допустим по uniqueid). Затем при необходимости возврата анализировать эти данные.

litnimax, а вообще я всегда считал, что t в Dial и Queue разрешают оба вида переадресации? Только сейчас проверил - в 1.6 работает atxfer из очереди.
OpenSUSE 11.2 / Asterisk 1.6.x / Vicidial / UniMRCP
2009-01-20 06:35

Сообщений: 12

Re: Transfer: Вернуть звонок тому, кто перевел.

выход один, сохранять и отслеживать всё течение звонка (допустим по uniqueid).
Эксперементировал. Дело в том что когда трансферит А, то для трансфера создается новый uniqueid и никакие переменные не передаются. Пока не могу решить задачу. Подскажите если есть идеи.
2009-01-21 10:30

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: Transfer: Вернуть звонок тому, кто перевел.

новый uniqueid создается, но у него первая часть (до точки) такая же что и у родительского звонка
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2009-01-21 11:36

Сообщений: 12

Re: Transfer: Вернуть звонок тому, кто перевел.

Ну одинаковые uniqueid в первой части, по-моему бывают часто. А что если два одновременно трансфера совершаются?
Кстати а хотел уточнить: А как вытащить $CHANNEL по конкретному uniqueid с диалплана?
2009-01-21 15:45

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: Transfer: Вернуть звонок тому, кто перевел.

Oleg78:

<...> А как вытащить $CHANNEL по конкретному uniqueid с диалплана?
Не думаю, что такая функция есть в готовом виде.
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2009-01-22 12:42

Откуда: Москва
Сообщений: 4

Re: Transfer: Вернуть звонок тому, кто перевел.

Собственно проблема.
Трансфер звонков осуществляется так:

exten => _[124]XX,1,GotoIf($[${LEN(${BLINDTRANSFER})}=0]?50)
exten => _[124]XX,2,Set(BLDT=${BLINDTRANSFER})
exten => _[124]XX,3,Dial(SIP/${EXTEN},30,tm)
exten => _[124]XX,4,GotoIf($[ ${DIALSTATUS} = ANSWER ]?6)
exten => _[124]XX,5,Dial(SIP/${BLDT:4:3},120,tm)
exten => _[124]XX,6,Hungup
exten => _[124]XX,50,Dial(SIP/${EXTEN},30,tg)
exten => _[124]XX,51,Hungup

Естественно все замечательно работало, до перехода в новую версию (1.4)
происходит следущее
звонок поступает на железный телефон (ulaw) после чего переадресуется с него на номер (hold -> номер -> transfer) и кладется трубка. (т.к. соединение разорвано. т.е. звонок полностью передан на другой номер)
но после того как кладем трубку с телефона с которого переводили происходит повторный звонок.
с телефона 1 на телефон 2 трансфер на 3. 3-й звонит. на 2 кладем трубку. звонит 2.
Может кто сталкивался? Есть идеи куда копать хотя бы т.к. я зашел в тупик.
P.S. На Sip все работает как нада.
2009-03-02 12:57

Откуда: Москва
Сообщений: 4

Re: Transfer: Вернуть звонок тому, кто перевел.

litnimax:

Oleg78:

<...> А как вытащить $CHANNEL по конкретному uniqueid с диалплана?
Не думаю, что такая функция есть в готовом виде.
Если я правильно понял то это PickUpChan()
Вытаскивает звонок с $CHANNEL по названию канала
2009-03-02 12:59

Откуда: Kiev
Сообщений: 801

Re: Transfer: Вернуть звонок тому, кто перевел.

hpflash:

exten => _[124]XX,1,GotoIf($[${LEN(${BLINDTRANSFER})}=0]?50)
exten => _[124]XX,2,Set(BLDT=${BLINDTRANSFER})
exten => _[124]XX,3,Dial(SIP/${EXTEN},30,tm)
exten => _[124]XX,4,GotoIf($[ ${DIALSTATUS} = ANSWER ]?6)
exten => _[124]XX,5,Dial(SIP/${BLDT:4:3},120,tm)
exten => _[124]XX,6,Hungup
exten => _[124]XX,50,Dial(SIP/${EXTEN},30,tg)
exten => _[124]XX,51,Hungup

Естественно все замечательно работало, до перехода в новую версию (1.4)
и

hpflash:

P.S. На Sip все работает как нада.


что-то не стыкуется. Вы как-раз и показали участок, где "На Sip все работает как нада".... Тогда покажите, как происходит набор на аппаратные телефоны (кстати не ясно, чем вы их цепляете к Астериску ). Другими словами то место, где глючит. ИМХО, а может и я чего не увидел....
Лучший способ предвидеть будущее - изобрести его (Алан Кей, "Apple")
2009-03-02 15:28

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru