PDA

Voir la version complète : Xivo renvoi d'appels general



astux
10/03/2011, 11h32
il y a t'il une fonction dans XIVO avec la quelle à l'aide d'une touche on active le renvoi d'appels general et pas seulement du poste.
je veux dire que si quelqu'un essai de joindre l'entreprise sur un SDA il est immédiatement renvoyer vers un poste externe (un 06 ou autre) et que cette fonction peut être activée et désactivée à partir de n'importe quel poste de l'entreprise.
Merci.

Guillaume
10/03/2011, 12h30
Bonjour astux,

Non, cette fonctionnalité n'existe pas. Mais c'est assez facile à faire avec une sous-routine de prétraitement.

Guillaume.

astux
10/03/2011, 18h32
merci pour la réponse
tu as peut-être une piste, un truc logique. car la tout de suite je ne suis pas inspiré.
si tu as 2 minutes

cedricscha
10/03/2011, 19h17
Dans fichier de conf, tu en crée un nouveau fichier par exemple : RenvGen.conf

tu lui ajoute ceci dedans :


[RenvoiGeneral]
;BLF
exten => **1244**500,hint,Custom:lampRenvGen


;Activation/Desactivation BLF Renvoi General


exten => **1244**500,1,Answer()
exten => **1244**500,n,GotoIf($[${DB(Renvoi/General)} = 1]?Actif:PasActif)
exten => **1244**500,n,Hangup()
exten => **1244**500,n(Actif),Set(DB(Renvoi/General)=0)
exten => **1244**500,n,Set(DEVSTATE(Custom:lampRenvGen)=NOT _INUSE)
exten => **1244**500,n,Playback(RenvoiDesactive)
exten => **1244**500,n,Hangup()
exten => **1244**500,n(PasActif),Set(DB(Renvoi/General)=1)
exten => **1244**500,n,Set(DEVSTATE(Custom:lampRenvGen)=BUS Y)
exten => **1244**500,n,Playback(RenvoiActive)
exten => **1244**500,n,Hangup()

[CheckRenv]

exten = s,1,NoOp(Controle Renvoi General)
exten = s,n,GotoIf($[${DB(Renvoi/General)} = 1]?Actif:PasActif)
exten = s,n(Actif),NoOp(Renvoi Actif)
exten = s,n,Goto([TON RENVOI ICI])
exten = s,n,Hangup()
exten = s,n(PasActif),NoOp(Renvoi Desactive)
exten = s,n,Return()

Voila, tu mes dans le champs subroutine des appels concernés : CheckRenv

Et tu mes dans tes téléphone un BLF sur le numéro: **1244**500

et cela devrait corespondre à ton attente

astux
11/03/2011, 16h42
impeccable merci beaucoup ça fonctionne du tonner ! :pt1cable:
mais comment faire si l'utilisateur doit changer le numéro vers le quel il renvoi tout les appels ?
merci

cedricscha
11/03/2011, 18h34
Bahhhh lit un peu la doc............


enfin, je suis bonne pate..... je l'avais prevu cette demande : :sol:



[RenvoiGeneral]
;BLF
exten => **1244**500,hint,Custom:lampRenvGen


;Activation/Desactivation BLF Renvoi General


exten => _**1244**XXXXXXXXXX,1,NoOp(Enregistrement Numero)
exten => _**1244**XXXXXXXXXX,n,Set(DB(Renvoi/Extension)=${EXTEN:8})
exten => _**1244**XXXXXXXXXX,n,Hangup()

exten => **1244**500,1,Answer()
exten => **1244**500,n,GotoIf($[${DB(Renvoi/General)} = 1]?Actif:PasActif)
exten => **1244**500,n,Hangup()
exten => **1244**500,n(Actif),Set(DB(Renvoi/General)=0)
exten => **1244**500,n,Set(DEVSTATE(Custom:lampRenvGen)=NOT _INUSE)
exten => **1244**500,n,Playback(RenvoiDesactive)
exten => **1244**500,n,Hangup()
exten => **1244**500,n(PasActif),Set(DB(Renvoi/General)=1)
exten => **1244**500,n,Set(DEVSTATE(Custom:lampRenvGen)=BUS Y)
exten => **1244**500,n,Playback(RenvoiActive)
exten => **1244**500,n,Hangup()

[CheckRenv]

exten = s,1,NoOp(Controle Renvoi General)
exten = s,n,GotoIf($[${DB(Renvoi/General)} = 1]?Actif:PasActif)
exten = s,n(Actif),NoOp(Renvoi Actif)
exten = s,n,Goto(TONCONTEXTEPOURLESAPPELS,${DB(Renvoi/Extension)},1)
exten = s,n,Hangup()
exten = s,n(PasActif),NoOp(Renvoi Desactive)
exten = s,n,Return()


Et voila il te reste plus qu'a composer le **1244** suivi de ton numero auquel tu souhaite transferer tes appels.

astux
11/03/2011, 19h25
merci

ok je vais faire le test

bon week-end

astux
14/03/2011, 09h45
j'ai fais des tests et voilà pas concluants car je n'arrive pas à comprendre pourquoi asterisk me renvoi "extension not found". j'ai pourtant tout contrôlé !
le seul moyen que j'ai trouvé pour placer une valeur dans la DB c'est de mettre le numéro de téléphone vers le quel je renvoi, en dure dans le code, à la place des "XXX", ce n'est vraiment pas une solution.

ton code:

exten => **1244**XXXXXXXXXXX,1,NoOp(Enregistrement Numero)
exten => **1244**XXXXXXXXXXX,n,Set(DB(Renvoi/Extension)=${EXTEN:8})
exten => **1244**XXXXXXXXXXX,n,Hangup()

réponse asterisk:


[Mar 14 08:33:54] NOTICE[2895]: chan_sip.c:15718 handle_request_invite: Call from '302' to extension '**1244**00682828282' rejected because extension not found.

le deuxieme probleme :
asterisk ne voit plus les extensions de mon RenvGen.conf, toujours "**1244**500' rejected because extension not found."
donc le seul moyen pour qu'il répond au '**1244**" c'est de tout placer dans "[xivo-extrafeatures]" du "xivo-extrafeatures.conf", car c'est apparemment le seul contexte ou les modifications sont prise en compte.

trés bizarre ! ou bien je suis vraiment mauvais.!?

astux
14/03/2011, 11h54
encore un petit soucie, si je passe le numéro de la DB dans le contexte "default" asterisk s'arrête .... !?
une idée ?

LOGS


Mar 14 10:53:58 xipbx kernel: [83610.986636] asterisk[5426]: segfault at b60d7ffc ip 08065f75 sp b60d8000 error 6 in asterisk[8048000+e6000]

CLI


[Mar 14 10:53:58] -- Executing [s@CheckRenv:3] NoOp("SIP/302-00000016", "Renvoi Actif") in new stack
[Mar 14 10:53:58] -- Executing [s@CheckRenv:4] Goto("SIP/302-00000016", "default|00682828282|1") in new stack
[Mar 14 10:53:58] -- Goto (default,00682828282,1)
xipbx*CLI>
Disconnected from Asterisk server
[Mar 14 10:53:58] Executing last minute cleanups
xipbx:~# /etc/init.d/asterisk start

cedricscha
14/03/2011, 13h56
Il faut que tu include le contexte dans ton default par exemple, si ce n'est pas fais.

fais dans ta CLI :

show dialplan **1244**500@default

il dois te trouver qqch.

Pour ton problème de coupure d'asterisk, tu dois avoir plus de log fourni non ?

vas voir ici (http://www.asterisk-france.org/showthread.php/531-Segfault-suite-%C3%A0-une-fresh-installation) peut etre...

astux
14/03/2011, 14h41
ok pour inclide ça fonctionne. merci

mais pour le reste:

exten => **1244**XXXXXXXXXX,1,NoOp(Enregistrement Numero)
exten => **1244**XXXXXXXXXX,n,Set(DB(Renvoi/Extension)=${EXTEN:8})
exten => **1244**XXXXXXXXXX,n,Hangup()



Call from '200' to extension '**1244**0682828282' rejected because extension not found.

si je fais :


exten => **1244**0682828282,1,NoOp(Enregistrement Numero)
exten => **1244**0682828282,n,Set(DB(Renvoi/Extension)=${EXTEN:8})
exten => **1244**0682828282,n,Hangup()

pas de rejet !

une idée?

cedricscha
14/03/2011, 14h59
Pardon, c'est moi qui me suis trompe dans le code que je t'ai envoye.....

Rajoute un _ devant les **124......XXX....

J'ai oublie de le mettre quand j'ai recopie le code.

astux
14/03/2011, 15h11
super ça fonctionne
merci encore une fois

tnt90
21/08/2012, 21h20
Bonjour,

J'ai suivi ce qui a été décrit dans la 1ère réponse de cedricscha mais quand je fais **1244**500 sur mon poste, j'ai le message appel échoué.

Dans CLI, j'ai

[Aug 21 21:18:39] NOTICE[19796]: chan_sip.c:22970 handle_request_invite: Call from '07v58k' (192.168.250.11:5060) to extension '**1244**500' rejected because extension not found in context 'default

D'ou peux venir le problème ?

je suis en version XIVO SKARO 12.15

Merci de votre aide.
Thierry.

tnt90
23/08/2012, 17h56
up.

therebel23
24/08/2012, 17h30
Montre le resultat de la commande

dialplan show default

tnt90
24/08/2012, 17h46
sur mon téléphone, j'ai le message "appel échoué", et dans CLI


*CLI>
[Aug 24 17:42:57] == Using SIP RTP CoS mark 5
[Aug 24 17:42:57] NOTICE[19796]: chan_sip.c:22970 handle_request_invite: Call from '07v58k' (192.168.250.11:5060) to extension '**1244**0682828282' rejected because extension not found in context 'default'.

therebel23
24/08/2012, 18h19
Je veux dire dans la CLI, tape :

dialplan show default

et montre le resultat.

tnt90
24/08/2012, 18h32
la commande n'a pas l'air de passer :


*CLI> diaplan show default
No such command 'diaplan show default' (type 'core show help diaplan show' for other possible commands)

dans la version Xivo 12.15, c'est une version 1.8.15. ceet commande etait elle bonne

asterisk -r
Asterisk 1.8.15.0+pf.xivo.12.15~20120801.151045.00b9a3d, Copyright (C) 1999 - 2012 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
================================================== =======================
This package has been modified for the Debian GNU/Linux distribution
This package has then been modified for XiVO, a product of Proformatique
Please report all bugs to technique@proformatique.com
================================================== =======================
[Aug 24 18:31:00] Set to realtime thread
[Aug 24 18:31:00] == Parsing '/etc/asterisk/extconfig.conf': [Aug 24 18:31:00] == Found
[Aug 24 18:31:00] == Binding queue_log to pgsql/asterisk/queue_log
[Aug 24 18:31:00] Connected to Asterisk 1.8.15.0+pf.xivo.12.15~20120801.151045.00b9a3d currently running on disteoipbxspare (pid = 24697)
Verbosity is at least 5

therebel23
24/08/2012, 18h40
Tu as oublié le "l" de dialplan.

tnt90
24/08/2012, 19h55
Oups, ce doit etre la fatique, voici le résultat :


*CLI> dialplan show default
[ Context 'default' created by 'pbx_config' ]
'*6661' => hint: SIP/07v5k [pbx_config]
'*6662' => hint: SIP/60t2y [pbx_config]
'1000' => hint: SIP/07v5k [pbx_config]
1. Set(XIVO_BASE_CONTEXT=${CONTEXT}) [pbx_config]
2. Set(XIVO_BASE_EXTEN=${EXTEN}) [pbx_config]
3. GoSub(user,s,1(1,1,,fr_FR)) [pbx_config]
'1001' => hint: SIP/60t2y [pbx_config]
1. Set(XIVO_BASE_CONTEXT=${CONTEXT}) [pbx_config]
2. Set(XIVO_BASE_EXTEN=${EXTEN}) [pbx_config]
3. GoSub(user,s,1(2,2,,fr_FR)) [pbx_config]
'1500' => 1. Set(XIVO_BASE_CONTEXT=${CONTEXT}) [pbx_config]
2. Set(XIVO_BASE_EXTEN=${EXTEN}) [pbx_config]
3. GoSub(group,s,1(1,)) [pbx_config]
'i' => 1. Playback(no-user-find) [pbx_config]
2. Hangup() [pbx_config]
't' => 1. Hangup() [pbx_config]
Include => 'to-extern' [pbx_config]
Include => 'from-extern' [pbx_config]
Include => 'fax-context' [pbx_config]
Include => 'xivo-features' [pbx_config]
Include => 'xivo-extrafeatures' [pbx_config]
Include => 'parkedcalls' [pbx_config]

-= 7 extensions (16 priorities) in 1 context. =-

seb
23/11/2015, 12h11
Bonjour,

Je viens de tomber sur le thread que je trouve intéressant, cependant j'ai quelque question :


exten => **1244**500,1,Answer()
Le 500 est le numéro du poste interne sur lequel on souhaite activer le transfert ?

sduthil
24/11/2015, 15h40
Bonjour,

Je viens de tomber sur le thread que je trouve intéressant, cependant j'ai quelque question :


exten => **1244**500,1,Answer()
Le 500 est le numéro du poste interne sur lequel on souhaite activer le transfert ?

Non, l'extension est assez arbitraire (en tous cas sur un XiVO récent), elle pourrait surement être plus simple, mais elle reste la même, peu importe qui la compose.

seb
24/11/2015, 20h49
Je veux tester justement cela sur un XiVO récent.

Donc il est tout à fait possible de changer **1244**500 par **1234**120 par exemple ou cela pose t'il un problème particulier ?

L'extension **1244**500 peut être utilisée par toute les entités, il n'y aura pas de restriction ?

sduthil
25/11/2015, 16h45
Je veux tester justement cela sur un XiVO récent.

Donc il est tout à fait possible de changer **1244**500 par **1234**120 par exemple ou cela pose t'il un problème particulier ?

L'extension **1244**500 peut être utilisée par toute les entités, il n'y aura pas de restriction ?

Tu peux même complètement changer l'extension, sans avoir besoin de mettre des étoiles partout, genre 123456789, par contre il ne faut pas que ça entre en conflit avec d'autres extensions (sortantes, par exemple) et pour ça, commencer par ** est une bonne idée.

Pour l'accès à cette extension, ça dépend dans quel contexte tu l'enregistres. Si tu la mets dans [default], seuls les utilisateurs du contexte default pourront l'utiliser. Pour y donner accès à plusieurs entités, il te faudra:
1. créer un nouveau contexte [global-forward], par exemple (Services > IPBX > Configuration IPBX > Contextes > Ajouter)
2. enregistrer l'extension dans ce contexte via le dialplan
3. puis inclure ce contexte (Services > IPBX > Configuration IPBX > Contextes > Éditer > Onglet Général > Inclure des sous-contextes) dans chacun des autres contextes où tu veux que l'extension soit accessible.

seb
26/11/2015, 17h55
J'ai du mal à comprendre la manipulation, je vais essayer de reprendre tes indications


[RenvoiGeneral]
;BLF
exten => **1244**500,hint,Custom:lampRenvGen


;Activation/Desactivation BLF Renvoi General
exten => _**1244**XXXXXXXXXX,1,NoOp(Enregistrement Numero)
exten => _**1244**XXXXXXXXXX,n,Set(DB(Renvoi/Extension)=${EXTEN:8})
exten => _**1244**XXXXXXXXXX,n,Hangup()

exten => **1244**500,1,Answer()
exten => **1244**500,n,GotoIf($[${DB(Renvoi/General)} = 1]?Actif:PasActif)
exten => **1244**500,n,Hangup()
exten => **1244**500,n(Actif),Set(DB(Renvoi/General)=0)
exten => **1244**500,n,Set(DEVSTATE(Custom:lampRenvGen)=NOT _INUSE)
exten => **1244**500,n,Playback(RenvoiDesactive)
exten => **1244**500,n,Hangup()
exten => **1244**500,n(PasActif),Set(DB(Renvoi/General)=1)
exten => **1244**500,n,Set(DEVSTATE(Custom:lampRenvGen)=BUS Y)
exten => **1244**500,n,Playback(RenvoiActive)
exten => **1244**500,n,Hangup()

[CheckRenv]
exten = s,1,NoOp(Controle Renvoi General)
exten = s,n,GotoIf($[${DB(Renvoi/General)} = 1]?Actif:PasActif)
exten = s,n(Actif),NoOp(Renvoi Actif)
exten = s,n,Goto(TONCONTEXTEPOURLESAPPELS,${DB(Renvoi/Extension)},1)
exten = s,n,Hangup()
exten = s,n(PasActif),NoOp(Renvoi Desactive)
exten = s,n,Return()

Est-ce bien dans Configuration IPBX > Fichiers de configuration > Ajouter ? Je dois copier cela dans le fichier RenvoiGeneral.conf (à créer) ?


1. créer un nouveau contexte [global-forward], par exemple (Services > IPBX > Configuration IPBX > Contextes > Ajouter)
Je lui donne le "Nom/Nom affiché" global-forward
Entité : le choix de l'entité
Type de contexte : ??


2. enregistrer l'extension dans ce contexte via le dialplan
Alors là, je suis complétement largué ! Tu peux m'expliquer s'il te plaît ?


3. puis inclure ce contexte (Services > IPBX > Configuration IPBX > Contextes > Éditer > Onglet Général > Inclure des sous-contextes) dans chacun des autres contextes où tu veux que l'extension soit accessible.

sduthil
26/11/2015, 19h20
Effectivement, il faut ajouter un fichier de configuration (qui contient du dialplan) dans Configuration IPBX > Fichiers de configuration > Ajouter. Le nom du fichier importe peu, ce qui compte est le [RenvoiGeneral] qui est le contexte. On peut définir plusieurs fois le même contexte dans des fichiers différents, les différentes extensions seront mergées ensemble dans le même contexte (si elle ne sont pas les mêmes). Je te conseille vivement d'apprendre les bases du dialplan, c'est beaucoup plus simple de comprendre après: http://www.asteriskdocs.org/en/2nd_Edition/asterisk-book-html-chunk/asterisk-CHP-5.html

1. Dans notre cas, [RenvoiGeneral] est notre contexte que nous allons créer. Ce sera un contexte de type interne (ni entrant, ni sortant), dont le nom sera RenvoiGeneral (les crochets sont uniquement là dans le dialplan.

2. Par "enregistrer l'extension dans ce contexte via le dialplan", je voulais dire créer le fichier de configuration (dialplan) comme dit plus haut. C'est ce fichier qui va dire à Asterisk que l'extension "**1244**500" appartient au contexte RenvoiGeneral.

Le contexte [CheckRenv] n'a pas besoin d'être créé dans l'interface web, car on n'a pas besoin de l'inclure directement dans d'autres contextes, mais ce contexte sera disponible directement sous forme de sous-routine de prétraitement (via l'extension s)

seb
27/11/2015, 11h11
Bonjour Sébastien :)

C'est bien ce que j'avais essayé de faire, mais sans succès, l'extension **1244**500 n'est pas reconnue :


NOTICE[3653][C-00000007]: chan_sip.c:25704 handle_request_invite: Call from '65vpyg' (192.168.1.223:55430) to extension '**1244**500' rejected because extension not found in context 'internal-entite-1'

Voici comment j'ai procédé :

1. Configuration IPBX > Fichiers de configuration > Fichier : RenvoiGeneral.conf (j'ai enlevé [CheckRenv] dans celui-ci !)
2. Configuration IPBX > Contextes > Nouveau : renvoigeneral
Nom : renvoigeneral
Nom affiché : RenvoiGeneral
Entité : TEST
Type de contexte : Interne
Include des contextes : Appels internes (internal-entité-1)

J'ai même essayé de rajouter le contexte "renvoigeneral" dans "internal-entite-1), le problème reste identique...

Le CLI du dialplan show :



voip2*CLI> dialplan show renvoigeneral
[ Context 'renvoigeneral' created by 'pbx_config' ]
'i' => 1. Playback(no-user-find) [pbx_config]
2. Hangup() [pbx_config]
't' => 1. Hangup() [pbx_config]
Include => 'xivo-features' [pbx_config]
Include => 'xivo-extrafeatures' [pbx_config]
Include => 'parkedcalls' [pbx_config]
Include => 'internal-entite-1' [pbx_config]

-= 2 extensions (3 priorities) in 1 context. =-
voip2*CLI> dialplan show RenvoiGeneral
[ Context 'RenvoiGeneral' created by 'pbx_config' ]
'**1244**500' => hint: Custom:lampRenvGen [pbx_config]
1. Answer() [pbx_config]
2. GotoIf($[${DB(Renvoi/General)} = 1]?Actif:PasActif) [pbx_config]
3. Hangup() [pbx_config]
[Actif] 4. Set(DB(Renvoi/General)=0) [pbx_config]
5. Set(DEVSTATE(Custom:lampRenvGen)=NOT _INUSE) [pbx_config]
6. Playback(RenvoiDesactive) [pbx_config]
7. Hangup() [pbx_config]
[PasActif] 8. Set(DB(Renvoi/General)=1) [pbx_config]
9. Set(DEVSTATE(Custom:lampRenvGen)=BUS Y) [pbx_config]
10. Playback(RenvoiActive) [pbx_config]
11. Hangup() [pbx_config]
'_**1244**XXXXXXXXXX' => 1. NoOp(Enregistrement Numero) [pbx_config]
2. Set(DB(Renvoi/Extension)=${EXTEN:8}) [pbx_config]
3. Hangup() [pbx_config]

-= 2 extensions (15 priorities) in 1 context. =-


OU je me plante dans la configuration ?

seb
27/11/2015, 11h15
J'ai trouvé le problème d'include de l'extension...

Il faut changer [RenvoiGeneral] par [renvoigeneral]

Sur mon Aastra, je n'ai pas la LED qui s'allume, pourtant j'ai ajouté le **1244**500 sur la touche n°1. Est-ce que la LED doit s'allumer ou j'ai rêvé cette fonctionnalité ?

Concernant le [CheckRenv] ou faut-il l'inscrire afin de l'utiliser ?

J'ai créer le fichier dans Configuration IPBX > Fichier de configuration puis dans Appels entrants > SDA j'ai ajouté la Sous-routine de prétraitement : "CheckRenv".

Est-ce comme cela qu'il faut gérer ?

Avec cette méthode, le numéro qui arrive sur le poste de renvoi n'est pas présenté, existe t'il une solution pour afficher le numéro de l'appelant ?

seb
05/07/2016, 12h01
Bonjour,

J'ai par exemple deux téléphones, avec cette méthode si j'active le renvoi sur le premier téléphone, le second bascule aussi en mode renvoi.

Comment faire pour activer le renvoi extérieur uniquement sur le téléphone que je souhaite ??