ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Требуется донастройка Asterisk

Предложения услуг, поиск исполнителей, покупка/продажа оборудования

Модераторы: april22, Zavr2008

Требуется донастройка Asterisk

Сообщение alexdarh » 30 авг 2017, 14:08

Здравствуйте! Есть работающий сервер астериск. Необходимо сделать следующее: в момент поднятия трубки Агентом из группы Агентов, необходимо отправлять ГЕТ запрос на http-сервис. Прошу указать сроки и стоимость подобного решения. Установлен стандартный freepbx
alexdarh
 
Сообщений: 5
Зарегистрирован: 27 авг 2017, 16:48

Re: Требуется донастройка Asterisk

Сообщение Zavr2008 » 30 авг 2017, 15:20

curl есть же)

https://www.voip-info.org/wiki/view/Asterisk+cmd+Curl

Example (GET-Method):
Код: выделить все
exten => _X.,2,curl(http://www.somehost.com/may_be_a_dir/file_to_call.php?postdata_var1=1&postdata_var2=something)
exten => _X.,3,Wait(5)
exten => _X.,4,NoOp(CURL-RESPONSE: ${CURL})

Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2158
Зарегистрирован: 27 янв 2011, 01:35

Re: Требуется донастройка Asterisk

Сообщение Wapo » 30 авг 2017, 15:44

Zavr2000 вы еще забыли ему подсказать посмотреть опции выполнения макро или gosub-а в момент именно поднятия трубки :)
Аватар пользователя
Wapo
 
Сообщений: 795
Зарегистрирован: 02 мар 2011, 18:53

Re: Требуется донастройка Asterisk

Сообщение alexdarh » 30 авг 2017, 16:42

CURL в системе не установлен. Думал сделать через https://github.com/ros-tel/asterisk-http-event Но что-то не разобрался. Мне проще если честно заплатить, сам я 1С -ник (( и знаний по администрированию Астериск у меня недостаточно. Поставить и настроить в базовом виде могу а так к сожалению нет. Звонок поступает на группу Агентов. Запрос должен уйти в момент поднятия трубки агентом. В нем должны быть CID и номер внутренний агента поднявшего трубку. Методом курения логов CLI понял что поднятие трубки обрабатывается вот здесь\:

Код: выделить все
; macro-dial:
;
; Rings one or more extensions.  Handles things like call forwarding and DND
; We don't call dial directly for anything internal anymore.
; ARGS: $TIMER, $OPTIONS, $EXT1, $EXT2, $EXT3, ...
; Use a Macro call such as the following:
;
;  Macro(dial,$DIAL_TIMER,$DIAL_OPTIONS,$EXT1,$EXT2,$EXT3,...)
;
[macro-dial]
exten => s,1,GotoIf($["${MOHCLASS}" = ""]?dial)
exten => s,n,Set(CHANNEL(musicclass)=${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}" = "TORTURE" | "${DIALSTATUS}" = "DONTCALL"))  | "${DIALSTATUS}" = "ANSWER"]?${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,GotoIf($["${DIALSTATUS}" = "ANSWER"]?ANSWER,1)
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),Noop(Deleting: CALLTRACE/${CT_EXTEN} ${DB_DELETE(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)
exten => ANSWER,1,Noop(Call successfully answered - Hanging up now)
exten => ANSWER,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)



В строке
Код: выделить все
exten => s,n(a42),Dial(${${HuntMember}}${ds})
.
[Показать] Спойлер:
log.png

Хотел использовать опцию U команды Dial, как мне тут подсказали на форуме. Но знаний катастрофически не хватает )))
alexdarh
 
Сообщений: 5
Зарегистрирован: 27 авг 2017, 16:48

Re: Требуется донастройка Asterisk

Сообщение alexdarh » 30 авг 2017, 16:59

Прошу прощения, наврал, установлен ( Но все равно не предствавляю, что передавать в аргументах....урл вида http:\\10.0.0.15\ListenAstr\param1=CID, param2=AgentID
alexdarh
 
Сообщений: 5
Зарегистрирован: 27 авг 2017, 16:48

Re: Требуется донастройка Asterisk

Сообщение ded » 30 авг 2017, 17:19

Он не в системе, а как функция в Астериске
Код: выделить все
*CLI> core show function CURL

  -= Info about function 'CURL' =-

[Synopsis]
Retrieves the contents of a URL

[Description]
  url       - URL to retrieve
  post-data - Optional data to send as a POST (GET is default action)


[Syntax]
CURL(url[,post-data])
Если стоимость в 3750 руб/час не пугает, то возьмёмся.
Нужен доступ в Астериск по SSH и доступ в сервер где урл вида http:\\10.0.0.15\ListenAstr\param1=CID, param2=AgentID
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00


Вернуться в Бизнес

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH