Страница 2 из 5

Re: Альтернатива FOP от Lynks

Добавлено: 12 апр 2011, 22:49
mcsa2003
А куда прописывать настройки для АМИ?
Я так понял имя менеджера и пароль интерактивно запрашиваются.

Re: Альтернатива FOP от Lynks

Добавлено: 15 апр 2011, 00:42
mcsa2003
Спасибо за помощь.

Теперь на странице появились кнопки экстеншенов, по ним видно абонент зарегистрирован или нет, но больше ничего не работает.

правил [macro-dial] след образом
вот то что было до

Код: Выделить всё

exten => s,n+2(normdial),Dial(${ds})                              
exten => s,n,Set(DIALSTATUS=${IF($["${DIALSTATUS_CW}"!="" ]?${DIALSTATUS_CW}:${DIALSTATUS})})
exten => s,n,GosubIf($["${SCREEN}" != ""]?${DIALSTATUS},1)
вот после

Код: Выделить всё

exten => s,n+2(normdial),noop(=normdial=)
exten => s,n,Set(DB(CURRCALL/${EXTTOCALL}/NUM)=${CALLERID(num)})
exten => s,n,Set(DB(CURRCALL/${EXTTOCALL}/NAME)=${CALLERID(name)})
exten => s,n,Dial(${ds})                             
exten => s,n,Set(DIALSTATUS=${IF($["${DIALSTATUS_CW}"!="" ]?${DIALSTATUS_CW}:${DIALSTATUS})})
exten => s,n,GosubIf($["${SCREEN}" != ""]?${DIALSTATUS},1)

FreePBX 2.6.0.3, Asterisk 1.6.2.17.2, PHP 5.2

Re: Альтернатива FOP от Lynks

Добавлено: 15 апр 2011, 10:25
mcsa2003
Это я читал.
Но у меня же не еластикс

Не знаю тот это формат или нет.
pbx*CLI> core show channels concise
SIP/3002-00000003!from-internal!3002!1!Ringing!AppDial!(Outgoing Line)!3002!!3!3!(None)!1302848622.3
SIP/3001-00000002!macro-dial!s!10!Ring!Dial!SIP/3002,,tr!3001!!3!3!(None)!1302848621.2

json_encode работает, я проверил.

Re: Альтернатива FOP от Lynks

Добавлено: 15 апр 2011, 14:18
mcsa2003
Посмотрел отладчиком,нет ошибок.
И в результатах отладки видно, что не получает скрипт правильно состояние экстеншенов

Код: Выделить всё

http://192.168.1.175/panel/extensions-realtime.php?query=currentstate&LogExtenNum=3003

ответ
{"agentstate":null,"connections":null}
хотя в это время шел звонок
Это в фаефоксе или хроме, а вот в интернет эксплорере вообще кнопки не появляются и вылазит ошибка

Код: Выделить всё

Сообщение: Объект не поддерживает это свойство или метод
Строка: 629
Символ: 21
Код: 0
URI-код: http://192.168.1.175/panel/extensions-realtime.php?show=list
На всякий случай добавил весь свой марко-диал к письму

Re: Альтернатива FOP от Lynks

Добавлено: 15 апр 2011, 16:03
mcsa2003
Ага, оказалось текстовые файлы не прикрепляются, мой макро-диал под спойлером
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: macro-dial
[macro-dial]
exten => s,1,GotoIf($["${MOHCLASS}" = ""]?dial)
exten => s,n,SetMusicOnHold(${MOHCLASS})
exten => s,n(dial),AGI(dialparties.agi)
exten => s,n,NoOp(Returned from dialparties with no extensions to call and DIALSTATUS: ${DIALSTATUS})

;exten => s,n+2(normdial),Dial(${ds}) ; dialparties will set the priority to 10 if $ds is not null
;exten => s,n,Set(DIALSTATUS=${IF($["${DIALSTATUS_CW}"!="" ]?${DIALSTATUS_CW}:${DIALSTATUS})})
;exten => s,n,GosubIf($["${SCREEN}" != ""]?${DIALSTATUS},1)

exten => s,n+2(normdial),noop(=normdial=)
exten => s,n,Set(DB(CURRCALL/${EXTTOCALL}/NUM)=${CALLERID(num)})
exten => s,n,Set(DB(CURRCALL/${EXTTOCALL}/NAME)=${CALLERID(name)})
exten => s,n,Dial(${ds})
exten => s,n,Set(DIALSTATUS=${IF($["${DIALSTATUS_CW}"!="" ]?${DIALSTATUS_CW}:${DIALSTATUS})})
exten => s,n,GosubIf($["${SCREEN}" != ""]?${DIALSTATUS},1)


exten => s,20(huntdial),NoOp(Returned from dialparties with hunt groups to dial )
exten => s,n,Set(HuntLoop=0)
exten => s,n(a22),GotoIf($[${HuntMembers} >= 1]?a30) ; if this is from rg-group, don't strip prefix
exten => s,n,NoOp(Returning there are no members left in the hunt group to ring)

; dialparties.agi has setup the dialstring for each hunt member in a variable labeled HuntMember0, HuntMember1 etc for each iteration
; and The total number in HuntMembers. So for each iteration, we will update the CALLTRACE Data.
;
exten => s,n+2(a30),Set(HuntMember=HuntMember${HuntLoop})
exten => s,n,GotoIf($[$["${CALLTRACE_HUNT}" != "" ] & $[$["${RingGroupMethod}" = "hunt" ] | $["${RingGroupMethod}" = "firstavailable"] | $["${RingGroupMethod}" = "firstnotonphone"]]]?a32:a35)

exten => s,n(a32),Set(CT_EXTEN=${CUT(FILTERED_DIAL,,$[${HuntLoop} + 1])})
exten => s,n,Set(DB(CALLTRACE/${CT_EXTEN})=${CALLTRACE_HUNT})
exten => s,n,Goto(s,a42)

;Set Call Trace for each hunt member we are going to call "Memory groups have multiple members to set CALL TRACE For" hence the loop
;
exten => s,n(a35),GotoIf($[$["${CALLTRACE_HUNT}" != "" ] & $["${RingGroupMethod}" = "memoryhunt" ]]?a36:a50)
exten => s,n(a36),Set(CTLoop=0)
exten => s,n(a37),GotoIf($[${CTLoop} > ${HuntLoop}]?a42) ; if this is from rg-group, don't strip prefix
exten => s,n,Set(CT_EXTEN=${CUT(FILTERED_DIAL,,$[${CTLoop} + 1])})
exten => s,n,Set(DB(CALLTRACE/${CT_EXTEN})=${CALLTRACE_HUNT})
exten => s,n,Set(CTLoop=$[1 + ${CTLoop}])
exten => s,n,Goto(s,a37)

exten => s,n(a42),Dial(${${HuntMember}}${ds})
exten => s,n,Set(HuntLoop=$[1 + ${HuntLoop}])
exten => s,n,GotoIf($[$[$["foo${RingGroupMethod}" != "foofirstavailable"] & $["foo${RingGroupMethod}" != "foofirstnotonphone"]] | $["foo${DialStatus}" = "fooBUSY"]]?a46)
exten => s,n,Set(HuntMembers=0)
exten => s,n(a46),Set(HuntMembers=$[${HuntMembers} - 1])
exten => s,n,Goto(s,a22)

exten => s,n(a50),DBdel(CALLTRACE/${CT_EXTEN})
exten => s,n,Goto(s,a42)

; For call screening
exten => NOANSWER,1,Macro(vm,${SCREEN_EXTEN},BUSY,${IVR_RETVM})
exten => NOANSWER,n,GotoIf($["${IVR_RETVM}" != "RETURN" | "${IVR_CONTEXT}" = ""]?bye)
exten => NOANSWER,n,Return
exten => NOANSWER,n(bye),Macro(hangupcall)
exten => TORTURE,1,Goto(app-blackhole,musiconhold,1)
exten => TORTURE,n,Macro(hangupcall)
exten => DONTCALL,1,Answer
exten => DONTCALL,n,Wait(1)
exten => DONTCALL,n,Zapateller()
exten => DONTCALL,n,Playback(ss-noservice)
exten => DONTCALL,n,Macro(hangupcall)

; make sure hungup calls go here so that proper cleanup occurs from call confirmed calls and the like
;
exten => h,1,Macro(hangupcall)

; Ring an extension, if the extension is busy or there is no answer send it
; to voicemail
; ARGS: $VMBOX, $EXT
Да и еще, в коментах написано
"Перед началом работы агент регистрируется, воодя свой номер и пинкод
Открывается основной рабочий интефейс агента, где он может выбрать внутренний номер"

Только вот не могу понять где эта форма через которую агент регистрируется?

Re: Альтернатива FOP от Lynks

Добавлено: 19 апр 2011, 11:06
mcsa2003
Кажется я догадываюсь в чем проблема
При передаче переменной к примеру вот так
extensions-realtime.php?query=currentstate&LogExtenNum=3002
она не попадает в скрипт, по причине http://phpfaq.ru/globals

Re: Альтернатива FOP от Lynks

Добавлено: 19 апр 2011, 11:58
ded
switch писал(а):попробуй в поле для номера абонента ввести номер
.. а в поле имени - ввести имя. Далее, в поле дата - ввести дату, а вполе время - ввести время.
Должно всё получиться!

Re: Альтернатива FOP от Lynks

Добавлено: 19 апр 2011, 12:41
mcsa2003
switch писал(а):вот еще вспомнил: попробуй в поле для номера абонента ввести номер
Ну это я догадался сделать :)

Re: Альтернатива FOP от Lynks

Добавлено: 19 апр 2011, 14:15
mcsa2003
Заработало, но как-то очень странно


может все таки что-то не так с форматом

show channels concise, когда:

Идет звонок 3002->3001

Код: Выделить всё

SIP/3001-00000023!from-internal!3001!1!Ringing!AppDial!(Outgoing Line)!3001!!3!1!(None)!1303206685.35
SIP/3002-00000022!macro-dial!s!10!Ring!Dial!SIP/3001,15,tr!3002!!3!1!(None)!1303206685.3
4


трубка поднята

Код: Выделить всё

SIP/3001-00000023!from-internal!!1!Up!AppDial!(Outgoing Line)!3001!!3!5!SIP/3002-00000022!1303206685.35
SIP/3002-00000022!macro-dial!s!10!Up!Dial!SIP/3001,15,tr!3002!!3!5!SIP/3001-00000023!1303206685.34

В броузере все странно
Как мой отмечен номер 3002
запрос extensions-realtime.php?query=currentstate&LogExtenNum=3002

когда ничего не происходит

Код: Выделить всё

{"agentstate":{"":{"LogExtenNum":"3002","LogExtenName":"Grand","CurrCallNum":"3001","CurrCallName":"Zoiper","TalkingTo":"3001","PHPSESSID":"2qrp7n78rqvcriqu4otbdg4ue4"}},"connections":null}

идет звонок

Код: Выделить всё

{"agentstate":{"":{"LogExtenNum":"3002","LogExtenName":"Grand","CurrCallNum":"3001","CurrCallName":"Zoiper","TalkingTo":"3001","PHPSESSID":"2qrp7n78rqvcriqu4otbdg4ue4"}},"connections":{"3002":{"Status":"1","Connected":"3001,15,tr","Duration":"00:01","Application":"Dial","CallerID":" ","Channel":"SIP\/3002-00000024"},"3001,15,tr":{"Status":"-1","Connected":"3002","Duration":"00:01","Application":"Dial","CallerID":"Grand ","Channel":"SIP\/3001,15,tr"}}}

трубка поднята

Код: Выделить всё

{"agentstate":{"":{"LogExtenNum":"3002","LogExtenName":"Grand","CurrCallNum":"3001","CurrCallName":"Zoiper","TalkingTo":"3001","PHPSESSID":"2qrp7n78rqvcriqu4otbdg4ue4"}},"connections":null}

Re: Альтернатива FOP от Lynks

Добавлено: 20 апр 2011, 12:00
mcsa2003
Таки формат немного не такой, но уже почти все заработало.
У меня такой вопрос. Реагирует-ли как-то панель когда на абонента мышкой нажимаю(левую, правые кнопки)? У меня очень редко при нажатии на абонента, его номер попадает в поле набора номера