AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Исход как правильно прописать в контексте

Asterisk IP PBX 8 сообщений -
#1

Всем доброго дня.

Прошу помочь в верном написании контекста
контекст следующий

Код:
[from-99ks]
exten => _067XXXXXXX,1,NoOp
exten => _067XXXXXXX,n,Dial(dongle/i:35244XXX7265/${EXTEN},30);b80
exten => _067XXXXXXX,n,Dial(dongle/i:35912XXXXX0667/${EXTEN},30);b120
exten => _067XXXXXXX,n,Dial(dongle/i:35912XXXXX3237/${EXTEN},30);u500



ну тут понятно у меня три модема и я их по очереди перебираю. Но есть один глюк если допустим первый модем свободен и с него пошел звонок, а абонент которому звонят отбился - контекст не переходит на отбой. а начинает звонить через следующий модем.
вариант

Код:
exten => _067XXXXXXX,1,NoOp
exten => _067XXXXXXX,n,Dial(dongle/i:3524XXXXX8347265/${EXTEN},30);b80
exten => _067XXXXXXX,n,HangUp
exten => _067XXXXXXX,n,Dial(dongle/i:3591XXXXX10667/${EXTEN},30);b120
exten => _067XXXXXXX,n,HangUp

Тоже не катит - я тогда не могу позвонить через второй модем. Ломаю голову с утра, решение где то сверху но понять не могу - прошу подсказать.
#2

а добавить все модемы в группу и затем звонить в группу (а не на отдельные модемы) - так не получится?
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#3

нет? у меня привязка только по IMEI и важен порядок.
#4

а DIALSTATUS не поможет!
#5

Сделал вот так - не помогло...
exten => _09[678]XXXXXXX,1,Macro(stdexten,dongle/i:35244XXXX47265/${EXTEN},30)
exten => _09[678]XXXXXXX,1,Macro(stdexten,dongle/i:35912XXXX10667/${EXTEN},30)
exten => _09[678]XXXXXXX,1,Macro(stdexten,dongle/i:3591XXXXX33237/${EXTEN},30)

[macro-stdexten]
exten => s,1,Dial(${ARG1},${ARG2},tTr)
exten => s,n,Goto(s-$(DIALSTATUS),1)
exten => s,n,Verbose(Статус $(DIALSTATUS))
exten => s-NOANSWER,1,HangUp
exten => s-BUSY,1,HangUp
exten => _s-.,1,Goto(s-NOANSWER)
exten => a, 1,HangUp
#6

Цитата:
exten => s,1,Dial(${ARG1},${ARG2},tTr)


а вот так если exten => s,1,Dial(${ARG1},${ARG2},gtTr)

и в чем заключается суть
Цитата:
Сделал вот так - не помогло...


Не передался статус, не перешел на приоритет +1 или...
#7

поправил - вроде работает, буду рад если кто покритикует.

Код:
exten => _067XXXXXXX,n,Macro(stdexten,3591XXXXX433237,${EXTEN})
exten => _067XXXXXXX,n,Macro(stdexten,359XXXXX7710667,${EXTEN})
exten => _067XXXXXXX,n,Macro(stdexten,352XXXXXX347265,${EXTEN})


Код:
[macro-stdexten]
exten => s,1,DongleStatus(i:${ARG1},Dongle_Status)
exten => s,n,GotoIf($[${Dongle_Status} = 2]?dial:noop)
exten => s,n(dial),Dial(dongle/i:${ARG1}/${ARG2},30,gtTr)
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s,n(noop),Verbose(Modem ${ARG1} zanat Dongle_Status = ${Dongle_Status})
exten => s-NOANSWER,1,HangUp
exten => s-BUSY,1,HangUp
exten => s-CHANUNAVAIL,1,HangUp
exten => s-ANSWER,1, Hangup
#8

Код:
exten => s-BUSY,1,HangUp

я бы сделал вот так:
Код:
exten => s-BUSY,1,Busy(5)
exten => s-BUSY,n,Hangup

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius