Головоломка с PSTN IN
Откуда: EU/CA
Сообщений: 191
|
Головоломка с PSTN IN
Есть * с входящей FXO, несколькими FWD аккаунтами, локальными СИП клиентами и исходящим IAX LiveVoip. При входящем звонке * слушает DTFM и звонит на FWD по IAX FWD.
Теперь непонятки:
1)Если юзер из PSTN звонит на незарегистрированный на * FWD все отлично, как и должно быть.
2)Eсли юзер из PSTN звонит на зарегестрированный на * FWD, трафик сначала передается на сервер FWD а потом обратно на * и на (например на СИП клиента) что НЕЛОГИЧНО. Зачем гонять трафик по нету когда конечная точка локальный СИП?
3)Если пункт второй решиться каким образом к этой всей каше добавить исходящую IAX LiveVoip? Может так: звоню на *, слышу гудок, ввожу пароль, * понимает что это ПАРОЛЬ а не FWD номер и предлагает мне ввести номер для набора по IAX LiveVoip.
Может кто нибудь примеры видел или занимался чем нибудь подобным?
Трудное мы сделаем сразу, невозможное потребует немного больше времени.
|
Сообщений: 194
|
Re: Головоломка с PSTN IN
ИМХО, п.2 как раз логично :-)
чтобы не гонять звонок туда-сюда, на мой взгляд надо прописать правила в экстеншн.конф, тогда звонок напрямик пойдет...
выложи конфиги (заменив номера/пароли), будет проще советовать что-либо
|
Откуда: EU/CA
Сообщений: 191
|
Головоломка с PSTN IN
extensions.conf
...
(pstn)
exten => s,1,Answer
exten => s,2,Playtones(dial)
exten => s,3,DigitTimeout(5)
exten => s,4,ResponseTimeout(5)
exten => s,5,Read(DST)
exten => s,6,StopPlaytones
exten => s,7,Dial(${FWDGW}/${DST},60,r)
exten => s,8,Hangup
;(pstn2)
;exten => s,1,NoOp(${CALLERID})
;exten => s,2,Answer
;exten => s,3,Wait(1)
;exten => s,4,Authenticate(11803)
;exten => s,5,Playtones(dial)
;exten => s,6,DigitTimeout(5)
;exten => s,7,ResponseTimeout(5)
;exten => s,8,Read(DST)
;exten => s,9,StopPlaytones
;exten => s,10,Dial(IAX2/${LVUSERNAME}:${LVPASS}@${LVIP}/${DST},60,r)
;exten => s,11,Hangup
(fwd-incoming)
exten => ${FWDUSERID},1,Wait(1)
exten => ${FWDUSERID},2,Playback(transfer)
exten => ${FWDUSERID},3,Dial(${INPHONES},20,m)
exten => ${FWDUSERID},4,Congestion
В принципе этого должно хватить.
Повторюсь про логику:
Приходит звонок на FXO и попадает в pstn, s
Звонящему выдаем диалтоне и читаем dtfm.
Набираем FWD.
Вопросы:
1. Как при совпадении набираемого номера с моим FWDUSERID не пробрасывать звонок через интернет а подавать его сразу в (fwd-incoming)
2. Как скрестить (pstn) и (pstn2) например так: звоню на *, слышу гудок, ввожу пароль, * понимает что это ПАРОЛЬ а не FWD номер и предлагает мне ввести номер для набора по IAX LiveVoip.
Трудное мы сделаем сразу, невозможное потребует немного больше времени.
|
Откуда: EU/CA
Сообщений: 191
|
Re: Головоломка с PSTN IN
Как вариант, на мой взгляд, можно это сделать с голосовым меню по типу DEMO из стандартной комплектации, но нужно чтоб без меню было, и по умолчанию без пассвордов и префиксов набирался ФВД.
Трудное мы сделаем сразу, невозможное потребует немного больше времени.
|
Откуда: EU/CA
Сообщений: 191
|
Re: Головоломка с PSTN IN
Тихо сам с собою я веду беседу...
Самое простое решение для моей задачи это 2 астериска :)
на одном прописываем все экстеншены и пароли, второй тупо обслуживает ФХО карточку на прием ДТФМ и передачу звонка другому *. Проверил, все работает :)
Но ведь должно быть решение с одним *!
Трудное мы сделаем сразу, невозможное потребует немного больше времени.
|
Откуда: Москва
Сообщений: 3421
|
Re: Головоломка с PSTN IN
goolТихо сам с собою я веду беседу...
Gool сошел с ума, gool сошел с ума!
Либо вы объясняете плохо, но я не понимаю. :(
Держите список ЛОКАЛЬНЫХ пользователей FWD и набирайте их напрямую, что мешает? Зачем вообще их в FWD выпускать и обратно принимать?
Кстати, а если использовать notransfer=no и canreinvite=yes, возможно при возварте звонка с FWD он переведется локально? Это надо чтобы FWD держал...
По воводу два в одном, сделайте меню типа нажмите 1 для набора fwd номера или 2 для аутентификации и звонка через live-voip.
Либо введи пароль в 4 цифры например или в 8 цифр и анализируй длину.
Если длина не длина ,пароля а длина номера FWD, звони в FWD. Если длина пароля, смотри правильный ли пароль и проси номер назначения. Море вариантов :)
|
Откуда: EU/CA
Сообщений: 191
|
Re: Головоломка с PSTN IN
2 litnimax
Близко к тому 8)
Ковырялся сегодня, что то намудрил в экстэншен.конф, короче стал у меня * принимать цифры в течении первой секунды тишины (до выдачи гудка и приема ДСТ) и передавать звонок на соответствующие экстэншены (например 1 или * в (пстн), которые я сразу добавил). Решил подправить, навести порядок... короче опять старая история. Желает слушать только ДСТ а единичные нажатия кнопок не опознает. Читал что комманда бакграунд позволяет их паралельно с проигрыванием чего нибудь считать, НО ее у меня ТОЧНО не было. Был ансвер, вэйт и НоОп.
Список локальных пользователей держу, но как звонок перекинуть на них... ?
А notransfer=no и canreinvite=yes по моему из СИП оперы, и к ИАКс ни каким боком...
Было бы нормально бакграундом проиграть секунду тишины ;) если за эту секунду нажали кнопку то перейдем в экстеншен 0-9,*,#, если нет считывать ДСТ.
Трудное мы сделаем сразу, невозможное потребует немного больше времени.
|
Сообщений: 243
|
Re: Головоломка с PSTN IN
gool
Список локальных пользователей держу, но как звонок перекинуть на них... ?
да просто, я вообще не пойму в чем проблема! Покажи список :)
А notransfer=no и canreinvite=yes по моему из СИП оперы, и к ИАКс ни каким боком...
К IAX2 правым боком директива notransfer :)
Было бы нормально бакграундом проиграть секунду тишины ;) если за эту секунду нажали кнопку то перейдем в экстеншен 0-9,*,#, если нет считывать ДСТ.
Смотри DigitTimeout. Ты вообще сюда заглядывал? http://www.voip-info.org/wiki-Asterisk+-+documentation+of+application+commands
|
Откуда: EU/CA
Сообщений: 191
|
Re: Головоломка с PSTN IN
2 admin
>Покажи список :)
Список выше по тексту/
(fwd-incoming)
exten => ${FWDUSERID},1,Wait(1)
exten => ${FWDUSERID},2,Playback(transfer)
exten => ${FWDUSERID},3,Dial(${INPHONES},20,m)
exten => ${FWDUSERID},4,Congestion (fwd-incoming)
exten => ${FWDUSERID2},1,Wait(1)
exten => ${FWDUSERID2},2,Playback(transfer)
exten => ${FWDUSERID2},3,Dial(${INPHONES2},20,m)
exten => ${FWDUSERID2},4,Congestion
...
например звоним на ФХО?слышим гудок? набираем FWDUSERID (или FWDUSERID2) , * шлет звонок на ФВД и ФВД шлет его назад в мой * в экстэншен (fwd-incoming) (от чего звонит ${INPHONES}(или $INPHONES2). Вопрос: КАК при наборе FWDUSERID или FWDUSERID2 послать звонок СРАЗУ в (fwd-incoming), а на все другие номера через ФВД?
Трудное мы сделаем сразу, невозможное потребует немного больше времени.
|
Сообщений: 243
|
Re: Головоломка с PSTN IN
Как насчет чего-то типа
exten => s,1,Answer
exten => s,2,Playtones(dial)
exten => s,3,DigitTimeout(5)
exten => s,4,ResponseTimeout(5)
exten => s,5,Read(DST)
exten => s,6,StopPlaytones
exten => s,7,GotoIf($[${DST} = ${FWDUSERID1}]?30:8)
exten => s,8,GotoIf($[${DST} = ${FWDUSERID2}]?30:9)
exten => s,9,Dial(${FWDGW}/${DST},60,r)
exten => s,10,Hangup
exten => s,30,Goto(fwd-incoming,${DST},1)
;)
|
|