-
Pour en revenir à ce sujet, concernant la macro user.
Je n'ai pas vu de sous-routine définit préalablement comme le XIVO_GROUP_MEMBER_SUBROUTINE dans la macro group.
Donc quelle sous-routine utiliser avant l'appel ?
J'ai vu qu'on peut en créer mais dans ce cas, elles ne concernent que :
* Les appels entrant
* Les chambres de conférence
* Les files d'attente
* Les utilisateurs
* Les groupes
Or j'ai envie que ce soit fait de manière globale, et ne pas avoir à repasser sur chaque utilisateur pour indiquer la sous-routine à utiliser si c'est possible.
-
Je vais détailler un peu plus ce que je souhaite faire. Ici j'ai besoin de modifier la macro extensions_lib_user pour faire des renvois d'appels (qui colle avec un script php qui a été développé pour permettre à un utilisateur de choisir son type de renvoi).
Il existe peut être une façon plus simple de faire ce que je vais détailler, mais je souhaite rester dans un premier temps sur de l'intégration.
Donc dans la macro user, j'execute le code suivant juste avant la ligne:
exten = s,n,GotoIf($[${GROUP_COUNT(${XIVO_DSTID}@XIVO_USER)} >= ${XIVO_SIMULTCALLS}]?BUSY,1)
; do not disturb forward in any case
exten = s,n,Set(num_to_forward_dnd=${DB(DND/${XIVO_DSTNUM})})
exten = s,n,GotoIf($["${num_to_forward_dnd}" = "YES"]?DND,1:nodnd)
exten = s,n(nodnd),NoOp
;call forward unconditionnal
exten = s,n,Set(num_to_forward_cf=${DB(CF/${XIVO_DSTNUM})})
exten = s,n,GotoIf(${num_to_forward_cf}?cf:nocf)
exten = s,n(nocf),NoOp
; forward if busy (instead of waiting for voicemail, forward it to a number specified)
exten = s,n,Set(num_to_forward_cfb=${DB(CFB/${XIVO_DSTNUM})})
exten = s,n,GotoIf($[ $["${GROUP_COUNT(${XIVO_DSTID}@XIVO_USER)}" >= "1"] & $["${num_to_forward_cfb}" != ""] ]?cfb:nocfb)
exten = s,n(nocfb),NoOp
Après :
exten = s,n,Goto(${DIALSTATUS},1)
exten = s,n,MacroExit()
J'ai:
;call forward unconditionnal
exten = s,n(cf),Playback(find-user)
exten = s,n(cf),Set(num=${REGEX("^0[67].*$" ${num_to_forward_cf})})
exten = s,n(cf),GotoIf($["${num}" = "1"]?cf1:cf2)
exten = s,n(cf1),Dial(CAPI/ISDN1/${num_to_forward_cf}/d)
exten = s,n(cf2),Dial(SIP/${num_to_forward_cf},20,tT)
exten = s,n,Goto(voicemail,1)
;call forward busy
exten = s,n(cfb),Playback(find-user)
exten = s,n(cfb),Set(num=${REGEX("^0[67].*$" ${num_to_forward_cfb})})
exten = s,n(cfb),GotoIf($["${num}" = "1"]?cfb1:cfb2)
exten = s,n(cfb1),Dial(CAPI/ISDN1/${num_to_forward_cfb}/d)
exten = s,n(cfb2),Dial(SIP/${num_to_forward_cfb},20,tT)
exten = s,n,Goto(voicemail,1)
;call forward unavailable
exten = NOANSWER,n,Set(num_to_forward_cfu=${DB(CFU/${XIVO_DSTNUM})})
exten = NOANSWER,n,GotoIf(${num_to_forward_cfu}?cfu:nocfu)
exten = NOANSWER,n(cfu),Playback(find-user)
exten = NOANSWER,n(cfu),Set(num=${REGEX("^0[67].*$" ${num_to_forward_cfu})})
exten = NOANSWER,n(cfu),GotoIf($["${num}" = "1"]?cfu1:cfu2)
exten = NOANSWER,n(cfu1),Dial(CAPI/ISDN1/${num_to_forward_cfu}/d)
exten = NOANSWER,n(cfu2),Dial(SIP/${num_to_forward_cfu},20,tT)
exten = NOANSWER,n(cfu2),Goto(voicemail,1)
exten = NOANSWER,n(nocfu),NoOp
J'ai essayé de déninir une sous-routine XIVO_USERPREPROCESS_SUBROUTINE = fwd-user-one sans succès.
Je voudrais avoir quelques pistes pour qu'à la prochaine mise à jour, tout ne part pas...
Règles de messages
- Vous ne pouvez pas créer de nouvelles discussions
- Vous ne pouvez pas envoyer des réponses
- Vous ne pouvez pas envoyer des pièces jointes
- Vous ne pouvez pas modifier vos messages
-
Règles du forum