Перевод звонка по таймауту на другой номер
Сообщений: 54
|
Перевод звонка по таймауту на другой номер
Помогите разобраться. Звонок приходит с внешнего мира, делается Dial на определенный exten, если в течение определенного времени не поднимается трубка необходимо звонок перевести на другой номер например мобильный. Вот как я это реализовал
exten => 123,1,Dial(SIP/${EXTEN},5)
exten => 123,2,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?:3:4)
exten => 123,3,Dial(SIP/Provider/123456789)
exten => 123,4,Hangup
Если в течение 5 сек не поднимают трубку, осуществляется Dial на внешний номер. Человек поднимает трубку на мобильном слышит голос и через несколько секунд связь обрывается. В чем могут быть проблемы ? Вообще как такие задачи реализовывают ?
|
Сообщений: 1573
|
Re: Перевод звонка по таймауту на другой номер
можно проще (но будет перезванивать и по другим не отвеченным статусам):
exten => 123,1,Dial(SIP/${EXTEN},5)
exten => 123,n,Dial(SIP/Provider/123456789,60)
exten => 123,n,Hangup
и попробуйте явно указать таймаут.
|
Сообщений: 54
|
Re: Перевод звонка по таймауту на другой номер
Да тут дело вот в чем. Есть схема работы.
asterisk -> Audiocodes Meidant -> E1 -> PSTN
Звоним абоненту на городской номер, звонок проходит на астер.
Абонент не поднимает трубку. Звоним дальше по таймауту на другой номер (на мобильник).Абонент поднимает трубку, слышен голос. Но как я понимаю телефонная станция ожидает Connect и не получая его рвет соединение через 5-6 сек.
На консоли получаем
chan_sip.c:2110 __sip_autodestruct: Autodestruct on dialog '47e18354221cd22f57d4080c0236ee39@X.X.X.X' with owner in place (Method: INVITE)
Звонок по сипу приходит с Audiocodes, абонет не берет трубу, через таймаут мы звоним через медиант на мобильный.
Для пущей вероятности установим правильно АОН.
Set(CALLERID(number)=4951234567) перед Dial
Звонок приходит, абоненты слышат друг друга, дальше разрыв после 5-6 сек.
|
Сообщений: 866
|
Re: Перевод звонка по таймауту на другой номер
Я правильно понимаю что если внутренний абонент (не на мобильном) ответил, ьо в е ок и никаких разрывов не происходит?
мне бы лично помогло если бы вы могли снять лог с core set debug 3, core set verbose 3 и sip set debug.
Но это при условии что вы можете найти время для проведения эксперимента когда активности на станции нет потому как sip debug будет сыпаться по всем звонкам и всем зарегистрированным телефонам.
Интересно собственно посмотреть что происходит в SIP'е звонка Mediant->Asterisk->SIPProvider.
|
Сообщений: 1573
|
Re: Перевод звонка по таймауту на другой номер
canreinvite=no ...?
|
Сообщений: 54
|
Re: Перевод звонка по таймауту на другой номер
canreinvite на Mediant стоит yes.
Сейчас уже астер под нагрузкой. Я думаю сварганить тестовый и так же подсоединить его к медианту и зарулить туда один номер, там и сниму дебаг. Маленькое уточнение. Астериск патченый. Оригинальный когда я подсоединил факс к нему при попытке передачи постоянно ругался на udptl и unknown frame. Факсовый аппарат присоединялся к 2 портовому Audiocode MP. С asteriskforum.ru я взял патчи T38 любезнопредоставленные пользователем Cache, наложил собрал, вроде как факсы пошли.
Объясню зачем я туда поставил астериск вообще. У нас клиентские шлюзы вешались на Audiocodes Mediant 1000, а от него по Е1 передавались на телефонную станцию. Все работало, никто не жаловался. Однако в Медианте ограниченное количество портов, свободные порты быстро закончились. Я как решение принял перекинуть клиентские шлюзы на астериск, а он уже будет отправлять на медиант. У клиентских шлюзов у все есть реальные номера. Может это не совсем правильное решение ? Лучше было бы поставить скажем FreeSwitch ? До этого я имел опыт только установки и реализации asterisk как офисной PBX.
|
Сообщений: 1573
|
Re: Перевод звонка по таймауту на другой номер
Asterisk может все ... )
Нужно только настроить его.
canreinvite=no
|
Сообщений: 54
|
Re: Перевод звонка по таймауту на другой номер
Если в sip.conf стоит canreinvite=no то при звонке я не слышу голоса.
|
Сообщений: 54
|
Re: Перевод звонка по таймауту на другой номер
А это при core set verbose на консоли.
-- Native bridging SIP/4956203544-b7d22af8 and SIP/Mediant-08a26770
[Apr 17 16:16:03] WARNING[28235]: chan_sip.c:12310 handle_response_invite: RTP re-invite after T38 session not handled yet !
[Apr 17 16:16:09] WARNING[28235]: chan_sip.c:2110 __sip_autodestruct: Autodestruct on dialog '0a219bcf72f25072068f34a620b059e5@217.28.210.22' with owner in place (Method: INVITE)
== Spawn extension (internal, 89067521036, 1) exited non-zero on 'SIP/4956203544-b7d22af8'
|
Откуда: Kiev
Сообщений: 801
|
Re: Перевод звонка по таймауту на другой номер
cron333: Asterisk может все ... )
Даже не переводить звонок по таймауту на другой номер!
Лучший способ предвидеть будущее - изобрести его (Алан Кей, "Apple")
|
|