PDA

Voir la version complète : Interception d'appels



alternatiq
01/04/2011, 18h50
Bonjour,

Comment faire pour intercepter un appel qui sonne sur un poste distant du mien, sans me lever ?

Question d'une secrétaire .... #XX# ?

Cordialement

Reaper
01/04/2011, 19h31
Mettre pickupgroup =X ou X est le numéro de groupe pour chaque extension que vous voulez faire in 'pickup' (vous pouvez créer plusieurs groupes, seulement les membres de la groupe ont le droit de faire le pickup sur les membres de la même groupe O_0)
Assurer vous que dans le features.conf vous avez une chaîne 'pickupexten = valeur' ( *8 par défaut )ou voir dans le CLI que 'show features' elle existe sinon ajouter.

Voila tout.

F6HQZ
02/04/2011, 12h38
Bonjour,

Le mieux, est d'utiliser des téléphones SIP avec touches à fonction BLF (touches avec LED) et la fonction DIRECTPICKUP d'Asterisk. C'est une interception d'appel d'un poste individuel et non de groupe (plus pratique si plusieurs postes du même groupe sonnent en même temps).

Dans ce cas, la supervision des postes via les touches BLF (et leur LED) permet de voir si un collègue est en ligne ou pas, et si son poste est en train de sonner. Dans ce dernier cas, le fait d'appuyer sur la touche BLF qui supervise ce poste permet d'intercepter l'appel en cours de sonnerie.

Exemple pour un Aastra SIP standard :

directed call pickup: 1
directed call pickup prefix: 999

prgkey3 type: blf
prgkey3 value: 6007
prgkey4 type: blf
prgkey4 value: 6008
prgkey5 type: icom
prgkey5 value: 1004
prgkey6 type: blf
prgkey6 value: 6009

Dans le Dialplan d'Asterisk (/etc/asterisk/extensions.conf) :

[PICKUP]
exten => _999.,1,Set(CALLERID(all)=PICKUP <${CALLERID(num)}>)
exten => _999.,n,NoOp(CALLERID=${CALLERID(all)})
exten => _999.,n,Pickup(${EXTEN:3})
exten => _999.,n,NoOp(CALLERID=${CALLERID(all)})

Il faut intégrer le contexte [PICKUP] dans le contexte des postes téléphoniques locaux :

include => PICKUP

Cordialement,
Francois

alternatiq
02/04/2011, 23h42
Merci Francois pour ces informations, mais 2 questions me brulent les doigts ...

Est-ce que la BLF marche sans LED ? (Type Poste 6731i Aastra ?)


Il faut intégrer le contexte [PICKUP] dans le contexte des postes téléphoniques locaux :

Je ne comprends pas, que faut-il faire exactement ?

Merci d'avance.

F6HQZ
03/04/2011, 13h53
Bonjour,

Désolé si ce n'était pas assez clair.

Dans le fichier extensions.conf, un contexte spécifique contient toutes les extensions, ou une macro, afin de permettre de numéroter et joindre ces téléphones internes.

C'est dans ce contexte qu'il faudra inclure le contexte [PICKUP].

Autre chose passée sous silence dans mon précédent message :
il faut, bien entendu, que la supervision se fasse bien sur ces postes internes.
En général, c'est (encore) un contexte inclus dans celui qui permet de numéroter les postes internes.

Je l'appelle souvent [HINTS], pour mémoire.

Donc, voici un exemple ultra simple (même trop simpliste) :

[INTERNAL]

include => PICKUP
include => HINTS

exten => 6001,1,Dial(SIP/compte1)
exten => 6002,1,Dial(SIP/compte2)

[HINTS]
exten => 6001,hint,SIP/compte1
exten => 6002,hint,SIP/compte2

[PICKUP]
exten => _999.,1,Set(CALLERID(all)=PICKUP <${CALLERID(num)}>)
exten => _999.,n,NoOp(CALLERID=${CALLERID(all)})
exten => _999.,n,Pickup(${EXTEN:3})
exten => _999.,n,NoOp(CALLERID=${CALLERID(all)})

Ne pas oublier de paramétrer en conséquence les téléphones SIP...

Cordialement,
Francois

alternatiq
08/04/2011, 15h35
Bonjour,

Merci j'ai lu bien attentivement, mais je reste tétanisé par la methode.

Mon extensions.conf contient les 2 contextes, mais que faut'il faire sur les postes et qu'elles séquences de touches faut-il faire pour intercepter...

J'ai la maitrise sur du PBX traditionnel mais la je plane ...

F6HQZ
08/04/2011, 19h19
Oulà ! Ca va devenir difficile...
Comment expliquer ?

1/ Savez-vous paramétrer votre Aastra 6731i ?
2/ Savez-vous lui programmer des BLF (les petits boutons avec une LED placés en haut sont programmables) ?
3/ Oubliez le provisionning pour faire plus simple, travaillez uniquement via les pages WEB d'admin du téléphone.

Si vous programmez une de ces touches en fonction "BLF", le poste dont l'extension sera "surveillée" par ce téléphone verra la LED éteinte si le poste du collègue est dispo ou déconnecté, fixe s'il est en ligne, clignotant s'il sonne.

S'il sonne, le fait d'appuyer sur cette touche BLF permettra d'intercepter la communication et de répondre à sa place depuis ce téléphone "superviseur" (qui voit donc les états des téléphones des collègues).

En fait, pour la "commande d'interception" issue du téléphone elle-même, vous devez renseigner le champs dédié dans le téléphone SIP Aastra "Park Pickup Config" ou "Directed Call Pickup" selon le modèle, situé dans la page "Global SIP", en ajoutant une sorte de préfixe qui sera envoyé ajouté en entête par le téléphone devant le numéro d'extension du poste à intercepter. Dans mon exemple, entrez "999" mais toute autre valeur peut marcher (ex: "*99")tant que vous la répliquerez dans le contexte "[PICKUP]" de mon exemple, pour "déclencher" l'action d'interception.

4/ Il faut modifier extensions.conf dans Asterisk pour y ajouter les instructions qui permettront l'interception des appels des autres postes.
Pour commencer, il faut qu'Asterisk supervise lui-même les postes en questions.
C'est via la fonction HINT que cela se fait.
C'est une sorte de déclaration (d'inscription) à un service dédié à la supervision.
Chaque poste surveillé est donc déclaré par une ligne HINT :

[HINTS]
exten => 6001,hint,SIP/compte1
exten => 6002,hint,SIP/compte2

Tous les postes à surveiller devront être ainsi "inscrit" au service de supervision.

Le contexte suivant permettra l'interception elle-même lors d'un appui sur une touche BLF qui clignotte :

[PICKUP]
exten => _999.,1,Set(CALLERID(all)=PICKUP <${CALLERID(num)}>)
exten => _999.,n,NoOp(CALLERID=${CALLERID(all)})
exten => _999.,n,Pickup(${EXTEN:3})
exten => _999.,n,NoOp(CALLERID=${CALLERID(all)})

Et donc, pour finir, ajoutez les deux lignes suivantes dans le contexte d'origine qui contient vos extensions internes :

include => PICKUP
include => HINTS

Cordialement,
Francois

YBDOMO
08/04/2011, 21h39
Bonjour,

Merci j'ai lu bien attentivement, mais je reste tétanisé par la methode.

Mon extensions.conf contient les 2 contextes, mais que faut'il faire sur les postes et qu'elles séquences de touches faut-il faire pour intercepter...

J'ai la maitrise sur du PBX traditionnel mais la je plane ...

bonsoir,


Voir le lien suivant
http://www.voip-info.org/wiki/view/Asterisk+cmd+Pickup
et
http://www.voip-info.org/wiki/view/Asterisk+callgroups+and+pickupgroups

risque d'interception avec Pickup d'un poste en appel au lieu de celui a intercepter probleme rencontre lors d'une installation.

il y a cette methode

[Interception]
exten => _71.,1,Set(GLOBAL(PICKUPMARK)=${EXTEN:2})
exten => _71.,n,Pickup(${EXTEN:2}@PICKUPMARK)
exten => _71.,n,Hangup



mais deconseiller sur le premier lien pour GLOBAL

il y a aussi ce lien http://www.thorsten-knabe.de/linux/asterisk/pickup.jsp
PicKup2

beaucoup plus stable


[Interception] ; 71+Nro du poste a intercepter
;
exten => _71.,1,Set(Res_Pfx = "SIP/"${EXTEN:2})
exten => _71.,n,PicKup2(${Res_Pfx})
exten => _71.,n,Hangup

[Interception_Gen] ; interception sur sonnerie generale
exten => _72,1,PicKup2(${Sonnerie})
exten => _72,n,Hangup

ces contexts a include dans extensions.conf independant du phone.

A+

alternatiq
13/04/2011, 10h05
Bonjour,

Je reformule pour voir si j'ai bien compris ...

J'ai mis cela dans mon extensions.conf

[globals]
...
include => PICKUP
include => HINTS
...

[HINTS] ;(10,11,12 et 13, les 4 extensions à surveiller)
exten => 6000,hint,SIP/10
exten => 6001,hint,SIP/11
exten => 6002,hint,SIP/12
exten => 6003,hint,SIP/13

[PICKUP] ;(99 est le numéro à taper avant l'ext choisie)
exten => _99.,1,Set(CALLERID(all)=PICKUP <${CALLERID(num)}>)
exten => _99.,n,NoOp(CALLERID=${CALLERID(all)})
exten => _99.,n,Pickup(${EXTEN:3})
exten => _99.,n,NoOp(CALLERID=${CALLERID(all)})

dans mon aastra.cfg

directed call pickup: 1
directed call pickup prefix: 99

Mais maintenant la ou je pige pas, faut-il mettre dans les BLF les 6001 + 6002 ... ou les 10 + 11 ....

prgkey1 type: blf
prgkey1 value: 6001
prgkey2 type: blf
prgkey2 value: 6002

Merci

YBDOMO
13/04/2011, 10h30
Bonjour,

Je reformule pour voir si j'ai bien compris ...

J'ai mis cela dans mon extensions.conf

[globals]
...
include => PICKUP
include => HINTS
...

[HINTS] ;(10,11,12 et 13, les 4 extensions à surveiller)
exten => 6000,hint,SIP/10
exten => 6001,hint,SIP/11
exten => 6002,hint,SIP/12
exten => 6003,hint,SIP/13

[PICKUP] ;(99 est le numéro à taper avant l'ext choisie)
exten => _99.,1,Set(CALLERID(all)=PICKUP <${CALLERID(num)}>)
exten => _99.,n,NoOp(CALLERID=${CALLERID(all)})
exten => _99.,n,Pickup(${EXTEN:3})
exten => _99.,n,NoOp(CALLERID=${CALLERID(all)})

dans mon aastra.cfg

directed call pickup: 1
directed call pickup prefix: 99

Mais maintenant la ou je pige pas, faut-il mettre dans les BLF les 6001 + 6002 ... ou les 10 + 11 ....

prgkey1 type: blf
prgkey1 value: 6001
prgkey2 type: blf
prgkey2 value: 6002

Merci

Bonjour,

Voir le lien suivant http://www.panoramisk.com/111/interception-de-ligne-avec-un-telephone-aastra-53i/fr/
cela pourra peut être vous servir

A+

F6HQZ
13/04/2011, 11h09
Bonjour,

Je reformule pour voir si j'ai bien compris ...


Bonjour,

Les numéros 6001, 6002, 6003, sont des exemples de numéros d'extensions tels qu'utilisés par Digium dans ses fichiers d'exemples fournis avec la version Asterisk Open Source.

Je suppose que vous avez vos propres numéros d'extensions, donc utilisez les votres. Si vous utilisez HINT avec des extensions qui n'existent pas, ça ne marchera pas.
De plus, vous parlez "d'extensions" en place et lieu de "comptes SIP" : ne confondez pas, sinon, même résultat : ne marchera pas.

Donc, pour chacun de vos numéros d'extensions sur les lignes HINT, vous associerez le comprte SIP qui corresponds bien à chacun.

Dans les champs associés aux BLF des Aastra, vous devez entrer les numéros des EXTENSIONS à surveiller (les mêmes qui sont déclarées par les lignes HINT de votr edailplan, pas les comptes SIP).

C'est tout !

Cordialement,
Francois BERGERET
Opcom

clepic
20/04/2011, 16h07
Bonjour,

Je suis dans la meme situation que alternatiq , j'ai du mal à tout bien comprendre .
Voici un exemple de se que j'ai fais :




----extension.conf----

[internal]
...

include => PICKUP
include => HINTS

exten => 100,1,Dial(SIP/secretaire)
exten => 200,1,Dial(SIP/patron)
exten => 300,1,Dial(SIP/technicien)

[HINTS]
exten => 100,hint,SIP/secretaire
exten => 200,hint,SIP/patron
exten => 300,hint,SIP/technicien

[PICKUP]
exten => _**.,1,Set(CALLERID(all)=PICKUP <${CALLERID(num)}>)
exten => _**.,n,NoOp(CALLERID=${CALLERID(all)})
exten => _**.,n,Pickup(${EXTEN:3})
exten => _**.,n,NoOp(CALLERID=${CALLERID(all)})

----aastra.cfg----

directed call pickup: 1
directed call pickup prefix: **


Les postes que j'ai son des aastra 6751i donc ils ont pas la fonction BLF on ne peut donc pas faire de la supervision. J'ai donc envie de faire de l'interception. J'aimerais que quand le patron appel le technicien, la secrétaire puisse intercepter lappel en fesant " ** ", le mieu aprés serai de faire " **+ le numero du poste "

Merci d'avance,

Cordialement.

ffossard
20/04/2011, 21h36
Bonjour,

Je suis dans la meme situation que alternatiq , j'ai du mal à tout bien comprendre .
Voici un exemple de se que j'ai fais :

Les postes que j'ai son des aastra 6751i donc ils ont pas la fonction BLF on ne peut donc pas faire de la supervision. J'ai donc envie de faire de l'interception. J'aimerais que quand le patron appel le technicien, la secrétaire puisse intercepter lappel en fesant " ** ", le mieu aprés serai de faire " **+ le numero du poste "

Merci d'avance,

Cordialement.

Oui pourquoi pas.
Ça ne fonctionne pas comme c'est là ?

F6HQZ
20/04/2011, 22h01
Bonsoir,

Dans votre cas, il faut modifier la partie PICKUP :

[PICKUP]
exten => _**.,1,Set(CALLERID(all)=PICKUP <${CALLERID(num)}>)
exten => _**.,n,Pickup(${EXTEN:2})

Il n'y a plus QUE 2 caractères en préfixe (**) et donc il ne faut supprimer QUE 2 caractères d'où ${EXTEN:2} au lieu de ${EXTEN:3}.

Supprimez les lignes "NoOp", car elles ne sont utiles que pour du debugging (trace de la valeur de la variable à la console Asterisk "CLI").

Et, si vous ne souhaitez pas modifier l'identité de l'appelant, simplifiez encore :

[PICKUP]
exten => _**.,1,Pickup(${EXTEN:2})

Strict minimum.

Cordialement,
Francois

clepic
21/04/2011, 12h11
Oui pourquoi pas.
Ça ne fonctionne pas comme c'est là ?

Non ça ne fonctionne pas...
J'ai fais les modifications de F6HQZ mais toujours rien. Quand je passe l'appel du technicien vers le patron et que sur le telephone de la secretaire je fais ** ça ne prend pas l'appel.

Une idée ?
Merci
Cordialement

YBDOMO
21/04/2011, 14h02
Non ça ne fonctionne pas...
J'ai fais les modifications de F6HQZ mais toujours rien. Quand je passe l'appel du technicien vers le patron et que sur le telephone de la secretaire je fais ** ça ne prend pas l'appel.

Une idée ?
Merci
Cordialement



Bonjour,

F6HQZ vous a indiqué ce qu'il faut faire.

${EXTEN:2} c'est l'equivalent de substring ou substr ou mid etc... en développement

ce que vous dit F6HQZ
pour l'interception d'appel c'est qqchose comme **200, 200 etant le numero de poste a intercepter par exemple
donc

${EXTEN:2} = 200 pour ${EXTEN} = **200

[PICKUP]
exten => _**.,1,Set(CALLERID(all)=PICKUP <${CALLERID(num)}>)
exten => _**.,n,Pickup(${EXTEN:2})

cela doit fonctionner

le context [PICKUP] est a inclure dans extensions.conf

A+

clepic
21/04/2011, 14h48
C'est bon ça marche , Merci beaucoup ;)

clepic
22/04/2011, 11h26
Peut t'on créer des groupes d'interception afin de pouvoir trié qui peut intercepter tel ou tel appel ?

Merci

YBDOMO
22/04/2011, 17h19
Peut t'on créer des groupes d'interception afin de pouvoir trié qui peut intercepter tel ou tel appel ?

Merci

Voir ce qu'a dit Reaper




Mettre pickupgroup =X ou X est le numéro de groupe pour chaque extension que vous voulez faire in 'pickup' (vous pouvez créer plusieurs groupes, seulement les membres de la groupe ont le droit de faire le pickup sur les membres de la même groupe O_0)
Assurer vous que dans le features.conf vous avez une chaîne 'pickupexten = valeur' ( *8 par défaut )ou voir dans le CLI que 'show features' elle existe sinon ajouter.



Voila

A+

clepic
26/04/2011, 11h01
Voici la config que j'ai faite. J'ai bien mis les pickupgroups mais ça ne marche toujours pas.
Quand j'apel le patron qui est dans le groupe deux j'arrive à intercepter l'appel avec le standard en fesant " **200 " alors que ça ne devrais pas vu que le standard est groupe un.




sip.conf

;================================================= ================================================== ==
[patron] ;nom de login de l'utilisateur
type=friend ;utilisateur classique
context=internal ;le contexte (plan de numérotation) utilisé par cet utilisateur
secret=mdp ;mot de passe de l'utilisateur
host=dynamic ;registrar = enregistrement automatique du terminal
canreinvite=yes ;possibilité d'envoyer la voix duirectement sans passer par Asterisk
username=patron ;nom de l'utilisateur
callerid=patron <200> ;nom coomplet + n° d'annuaire
dtmfmode=inband ;transport des appuis de touches
disallow=all ;désactivation de tous les codecs
allow=ulaw ;activation du codec g711 loi mu
mailbox=2 ;patron
callgroup=2 ; We are in caller groups 1,3,4
pickupgroup=2 ; We can do call pick-p for call group 1,3,4,5
;================================================= ================================================== ===
[technicien] ;nom de login de l'utilisateur
type=friend ;utilisateur classique
context=internal ;le contexte (plan de numérotation) utilisé par cet utilisateur
secret=mdp ;mot de passe de l'utilisateur
host=dynamic ;registrar = enregistrement automatique du terminal
canreinvite=yes ;possibilité d'envoyer la voix duirectement sans passer par Asterisk
username=technicien ;nom de l'utilisateur
callerid=technicien <300> ;nom coomplet + n° d'annuaire
dtmfmode=inband ;transport des appuis de touches
disallow=all ;désactivation de tous les codecs
allow=ulaw ;activation du codec g711 loi mu
mailbox=3 ;technicien
callgroup=1 ; We are in caller groups 1,3,4
pickupgroup=1 ; We can do call pick-p for call group 1,3,4,5
;================================================= ================================================== ===
[secretaire] ;nom de login de l'utilisateur
type=friend ;utilisateur classique
context=internal ;le contexte (plan de numérotation) utilisé par cet utilisateur
secret=mdp ;mot de passe de l'utilisateur
host=dynamic ;registrar = enregistrement automatique du terminal
canreinvite=yes ;possibilité d'envoyer la voix duirectement sans passer par Asterisk
username=secretaire ;nom de l'utilisateur
callerid=secretaire <100> ;nom coomplet + n° d'annuaire
dtmfmode=inband ;transport des appuis de touches
disallow=all ;désactivation de tous les codecs
allow=ulaw ;activation du codec g711 loi mu
mailbox=1 ;secretaire
callgroup=1 ; We are in caller groups 1,3,4
pickupgroup=1 ; We can do call pick-p for call group 1,3,4,5
;================================================= ================================================== ===
[standard] ;nom de login de l'utilisateur
type=friend ;utilisateur classique
context=internal ;le contexte (plan de numérotation) utilisé par cet utilisateur
secret=mdp ;mot de passe de l'utilisateur
host=dynamic ;registrar = enregistrement automatique du terminal
canreinvite=yes ;possibilité d'envoyer la voix duirectement sans passer par Asterisk
username=standard ;nom de l'utilisateur
callerid=standard <500> ;nom coomplet + n° d'annuaire
dtmfmode=inband ;transport des appuis de touches
disallow=all ;désactivation de tous les codecs
allow=ulaw ;activation du codec g711 loi mu
mailbox=5 ;secretaire
callgroup=1 ; We are in caller groups 1,3,4
pickupgroup=1 ; We can do call pick-p for call group 1,3,4,5
;================================================= ================================================== ===



feature.conf

;
; Sample Call Features (parking, transfer, etc) configuration
;

[general]
parkext => 700 ; What extension to dial to park (all parking lots)
parkpos => 701-720 ; What extensions to park calls on. (defafult parking lot)
; These needs to be numeric, as Asterisk starts from the start position
; and increments with one for the next parked call.
context => from-internal ; Which context parked calls are in (default parking lot)
pickupexten = ** ; Configure the pickup extension. (default is *8)


extension.conf

include => PICKUP
include => HINTS

exten => 100,Dial(SIP/secretaire)
exten => 200,Dial(SIP/patron)
exten => 300,Dial(SIP/technicien)
exten => 500,Dial(SIP/standard)

# INTERCEPTION DAPPEL

[HINTS]
exten => 100,hint,SIP/secretaire
exten => 200,hint,SIP/patron
exten => 300,hint,SIP/technicien
exten => 400,hint,SIP/standard

[PICKUP]
exten => _**.,1,Set(CALLERID(all)=PICKUP <${CALLERID(num)}>)
exten => _**.,n,Pickup(${EXTEN:2})

F6HQZ
26/04/2011, 14h28
Bonjour,

C'est normal !

Il fallait laisser pickupexten = *8 dans le fichier de feature.conf et si un poste compose *8 alors la communication qui ferait sonner un poste du groupe serait interceptée.

L'interception de groupe et le pickup sont DEUX choses différentes et autonomes.

Cordialement,
Francois

clepic
26/04/2011, 15h22
ça fonctionne parfaitement,

Merci beaucoup.

etann38
27/04/2011, 01h04
Bonjour,
Est-il possible de faire une interception d'appel lorsque les téléphones sont déclarés dans des contextes différents.
Par exemple
[contexte1]
dial(sip/1012)

[Contexte2]
dial(sip/1013)

Est-il donc possible d'intercepter le 1012 à partir du 1013 ?

alternatiq
28/04/2011, 18h36
C'est bon ça marche , Merci beaucoup ;)

Bonjour CLEPIC,

J'ai suivi correctement les infos mais rien, ... peut-on s'entraider, car il me manque qq chose pour y arriver.

mes users sont :

10, 11, 12 ou 13, avec des noms en Caller ID Name = Maxime P. par exemple pour 10

dans extensions.conf j'ai mis à la fin du fichier :

[PICKUP]
exten => _**.,1,Set(CALLERID(all)=PICKUP <${CALLERID(num)}>)
exten => _**.,n,Pickup(${EXTEN:2})

[HINTS]
exten => 10,hint,SIP/10
exten => 11,hint,SIP/11
exten => 12,hint,SIP/12
exten => 13,hint,SIP/13

Ensuite j'ai mis en BLF dans mes phones ou du moins dans le premier (10) des BLF pour suivre l'occupation et faire une interception.

ou met-on le :

include => HINTS
include => PICKUP

dans un [...] ou à la fin en vrac ?

Merci d'avance

ffossard
28/04/2011, 18h41
Bonjour,
Est-il possible de faire une interception d'appel lorsque les téléphones sont déclarés dans des contextes différents.
Par exemple
[contexte1]
dial(sip/1012)

[Contexte2]
dial(sip/1013)

Est-il donc possible d'intercepter le 1012 à partir du 1013 ?

Oui, c'est possible.

ffossard
28/04/2011, 18h58
Bonjour CLEPIC,

J'ai suivi correctement les infos mais rien, ... peut-on s'entraider, car il me manque qq chose pour y arriver.

mes users sont :

10, 11, 12 ou 13, avec des noms en Caller ID Name = Maxime P. par exemple pour 10

Plutôt une mauvaise idée d'utiliser les numéros de téléphones comme noms d'utilisateurs, beaucoup cèdent à cette facilité au départ, ça n'amène que des problèmes de compréhension, mais bon.



dans extensions.conf j'ai mis à la fin du fichier :

[PICKUP]
exten => _**.,1,Set(CALLERID(all)=PICKUP <${CALLERID(num)}>)
exten => _**.,n,Pickup(${EXTEN:2})

[HINTS]
exten => 10,hint,SIP/10
exten => 11,hint,SIP/11
exten => 12,hint,SIP/12
exten => 13,hint,SIP/13

Pour commencer il faut isoler le problème: est-ce le pickup, est-ce l'extension _**., est-le callerid ...
Mets juste ça et teste une interception d'un appel sonnant sur le téléphone "11" en tapant 000:


exten => 000,1,Pickup(11)


Si ça marche, teste le "**" comme tu souhaite faire:


exten => _**.,1,noop(exten: ${EXTEN})
same => n,noop(exten moins deux: ${EXTEN:2})

Le callerid tu le changera plus tard, quand tout ça fonctionnera ...
et REGARDE LA CLI, tout est dedans :wahoo:



Ensuite j'ai mis en BLF dans mes phones ou du moins dans le premier (10) des BLF pour suivre l'occupation et faire une interception.

Tu peux mettre la BLF sur plusieurs téléphones, tant qu'à faire.
Teste l'état des hints sur le serveurs, et vérifie que ton tel qui intercepte voit bien l'état de l'autre.
Cherche les commandes core show hints, sip show subscription, etc...



ou met-on le :

include => HINTS
include => PICKUP

dans un [...] ou à la fin en vrac ?
Merci d'avance
Dans le contexte du téléphone.

Si dans sip.conf pour les téléphones tu as "context=telephones":


[telephones]
include => internal
include => externe
include => messagerie
include => pickup
include => hints

Digium recommande même de mettre les hints dans le même contexte que les appels internes (après tout ce sont les mêmes extensions donc c'est logique) mais ça fonctionne très bien sans.


CLI CLI CLI :o

alternatiq
28/04/2011, 19h46
Non, j'ai bien des nom de users pour les extensions ... j'utilise le Web-GUI asterisk, c'est peut-etre là que je suis plus ...

si je prends mon extension 10 dans users.conf

[10]
username = 10
transfer = yes
mailbox = 10
call-limit = 100
type = peer
fullname = Nadine G.
registersip = no
host = dynamic
callgroup = 1
type = peer
context = DLPN_AtelierK
cid_number = 10
hasvoicemail = yes
vmsecret = 1234
email = nadine.g@xxx.fr
threewaycalling = no
hasdirectory = yes
callwaiting = no
hasmanager = no
hasagent = yes
hassip = yes
hasiax = no
secret = !!!
nat = yes
canreinvite = no
dtmfmode = rfc2833
insecure = no
pickupgroup = 1
macaddress = 00085D297E89
autoprov = yes
label = 10
linenumber = 1
LINEKEYS = 1
callcounter = yes
disallow = all
allow = alaw,ulaw


Qu'est ce qui n'est pas bon pour que j'utilise le HINTS après

clepic
29/04/2011, 10h04
Salut alternatiq ,

Je pense que le problème vien de ton sip.conf regarde le mien pour l'utilisateur technicien:



[technicien] ;nom de login de l'utilisateur
type=friend ;utilisateur classique
context=internal ;le contexte (plan de numérotation) utilisé par cet utilisateur
secret=mdp ;mot de passe de l'utilisateur
host=dynamic ;registrar = enregistrement automatique du terminal
canreinvite=yes ;possibilité d'envoyer la voix duirectement sans passer par Asterisk
username=technicien ;nom de l'utilisateur
callerid=technicien <300> ;nom coomplet + n° d'annuaire
dtmfmode=inband ;transport des appuis de touches
disallow=all ;désactivation de tous les codecs
allow=ulaw ;activation du codec g711 loi mu
mailbox=3 ;technicien
callgroup=1 ; We are in caller groups 1,3,4
pickupgroup=1 ; We can do call pick-p for call group 1,3,4,5


Il te manque cette ligne :

callerid=technicien <300> ;nom coomplet + n° d'annuaire

Pour ton cas ça serai


callerid=Nadine G. <10>


Le :
include => HINTS
include => PICKUP

Je l'ai mis en [internal] au tout début :


extension.conf

[internal]

include => PICKUP
include => HINTS

exten => 100,Dial(SIP/secretaire)
exten => 200,Dial(SIP/patron)
exten => 300,Dial(SIP/technicien)
exten => 500,Dial(SIP/standard)

exten => 100,1,Answer()
exten => 100,2,DIAL(SIP/secretaire,20)
exten => 100,3,voiceMail(1)
exten => 100,4,HangUp()

exten => 300,1,Answer()
exten => 300,2,DIAL(SIP/technicien,20)
exten => 300,3,voiceMail(2)
exten => 300,4,HangUp()

# INTERCEPTION DAPPEL

[HINTS]
exten => 100,hint,SIP/secretaire
exten => 200,hint,SIP/patron
exten => 300,hint,SIP/technicien
exten => 400,hint,SIP/standard

[PICKUP]
exten => _**.,1,Set(CALLERID(all)=PICKUP <${CALLERID(num)}>)
exten => _**.,n,Pickup(${EXTEN:2})


Je pense que ça devrais être bon :)
Tien moi au courant :pt1cable:

ffossard
29/04/2011, 12h09
Rajoute subscribecontext=HINTS pour tes users dans sip.conf

clepic
29/04/2011, 12h21
Rajoute subscribecontext=HINTS pour tes users dans sip.conf

ça sert à quoi exactement subscribecontext ? Car moi je ne l'ai pas mis. Es important ?

Merci

ffossard
29/04/2011, 18h30
Je te laisse regarder dans le fichier sample du sip.conf, c'est une mine d'informations :)

YBDOMO
30/04/2011, 10h29
Bonjour

Voir aussi http://www.voip-info.org/wiki/view/Asterisk+standard+extensions

extrait.




Privacy considerations: In sip.conf you can define a subscribecontext= value that determines in which context Asterisk should search for the matching extension when a subscribe request is received from the phone; however, if the extension doesn't exist in that context Asterisk is going to look for it in the default context! In other words: Everyone can subscribe to a "hinted" extension that is defined in the default context. By the way, specifying an empty subscribecontext is also fine if the phone should not at all subscribe to _any_ context.



A+

alternatiq
01/05/2011, 15h48
Je pense que je vais passer pour un boulet ... mais bon, ... J'ai fait une plateforme de tests ...

Pour être clair :

Ma plateforme est une VM debian avec asterisk 1.6, j'ai installé les addons + WebGUI d'asterisk ...

Je configure mon PBX avec le Web GUI Astreisk (Bien ou pas Bien)

3 Extensions : 6000 + 6001 et 6299
6000 = Mr S
6001 = Mll C
6299 = Standard

J'ai fait les conf en tftp pour mes 3 6731i pas de soucis ...

Quand j'appels le 6001 depuis 6299, en ayant mis les blfxfer dans mes conf, cela clignote bien et fixe quand décroché ... nativement sans rien ajouter dans extensions.conf ou sip.conf ...

dans les télephones j'ai ajouter de manière commune dans le aastra.cfg :

directed call pickup: 1
directed call pickup prefix: **

Ce que je voudrais, c'est intercepté en cliquant sur le bouton du 6731i pour prendre l'appel ....

Si je suis vos infos, j'ai des trucs qui marchent plus ... je deviens OUF de chez OUF

Je comprends bien que le ** doit etre compris et traitre par le PBX, mais j'ai un ecchec d'appel même à la mano.

Dans un test je fais sonner 6001 depuis 6000 et je veux prendre l'appel depuis 6299
donc je decroche et tape **6001
Mais echec de l'appel, le CLI me met cela :

Connected to Asterisk 1.6.0.1 currently running on ipbx (pid = 12069)
Verbosity is at least 7
== Using SIP RTP CoS mark 5
-- Executing [6001@DLPN_NMC:1] Macro("SIP/6000-020d5b00", "stdexten,6001,SIP/6001") in new stack
-- Executing [s@macro-stdexten:1] Set("SIP/6000-020d5b00", "__DYNAMIC_FEATURES=") in new stack
-- Executing [s@macro-stdexten:2] Set("SIP/6000-020d5b00", "ORIG_ARG1=6001") in new stack
-- Executing [s@macro-stdexten:3] GotoIf("SIP/6000-020d5b00", "0?6:4") in new stack
-- Goto (macro-stdexten,s,4)
-- Executing [s@macro-stdexten:4] Dial("SIP/6000-020d5b00", "SIP/6001,35,") in new stack
== Using SIP RTP CoS mark 5
-- Called 6001
== Extension Changed 6001[default] new state Ringing for Notify User 6001
== Extension Changed 6001[default] new state Ringing for Notify User 6299
-- SIP/6001-020cc320 is ringing
== Using SIP RTP CoS mark 5
[May 1 15:51:45] NOTICE[12106]: chan_sip.c:16869 handle_request_invite: Call from '6299' to extension '**6001' rejected because extension not found.
== Spawn extension (macro-stdexten, s, 4) exited non-zero on 'SIP/6000-020d5b00' in macro 'stdexten'
== Extension Changed 6001[default] new state Idle for Notify User 6001
== Extension Changed 6001[default] new state Idle for Notify User 6299
== Spawn extension (macro-stdexten, s, 4) exited non-zero on 'SIP/6000-020d5b00'

Donc c'est que cela commence à etre bon, mais faut que je traite le **

Nativement si je fait un "core show hints" j'ai cela :

ipbx*CLI> core show hints
-= Registered Asterisk Dial Plan Hints =-
6000@default : SIP/6000 State:Idle Watchers 2
6001@default : SIP/6001 State:Idle Watchers 2
6299@default : SIP/6299 State:Idle Watchers 2
----------------
- 3 hints registered

Donc j'ai déjà 2 tel qui surveillent les ext, donc pas besoin de [HINTS], je pense ?

Si j'ajoute cela à extensions.conf

[PICKUP] ;(** est le numéro à taper avant l'ext choisie)
exten => _**.,1,Set(CALLERID(all)=PICKUP <${CALLERID(num)}>)
exten => _**.,n,NoOp(CALLERID=${CALLERID(all)})
exten => _**.,n,Pickup(${EXTEN:3})
exten => _**.,n,NoOp(CALLERID=${CALLERID(all)})

CLI repond toujours "ext not found"

Extension Changed 6000[default] new state Idle for Notify User 6001
-- Executing [6001@DLPN_NMC:1] Macro("SIP/6000-01d3e100", "stdexten,6001,SIP/6001") in new stack
-- Executing [s@macro-stdexten:1] Set("SIP/6000-01d3e100", "__DYNAMIC_FEATURES=") in new stack
-- Executing [s@macro-stdexten:2] Set("SIP/6000-01d3e100", "ORIG_ARG1=6001") in new stack
-- Executing [s@macro-stdexten:3] GotoIf("SIP/6000-01d3e100", "0?6:4") in new stack
-- Goto (macro-stdexten,s,4)
-- Executing [s@macro-stdexten:4] Dial("SIP/6000-01d3e100", "SIP/6001,35,") in new stack
== Using SIP RTP CoS mark 5
-- Called 6001
== Extension Changed 6001[default] new state Ringing for Notify User 6299
== Extension Changed 6001[default] new state Ringing for Notify User 6001
-- SIP/6001-01d574c0 is ringing
== Using SIP RTP CoS mark 5
[May 1 16:00:05] NOTICE[12245]: chan_sip.c:16869 handle_request_invite: Call from '6299' to extension '**6001' rejected because extension not found.
== Spawn extension (macro-stdexten, s, 4) exited non-zero on 'SIP/6000-01d3e100' in macro 'stdexten'
== Extension Changed 6001[default] new state Idle for Notify User 6299
== Extension Changed 6001[default] new state Idle for Notify User 6001
== Spawn extension (macro-stdexten, s, 4) exited non-zero on 'SIP/6000-01d3e100'

Mais hormis avoir saisie cela, nul part je dis que c'est un context à gérer

HELP me !!!

alternatiq
01/05/2011, 16h43
En relisant et relisant et relisant

J'ai modifier mon context [PICKUP] par :

[PICKUP] ;(*8 est le numéro à taper avant l'ext choisie)
exten => _*8.,1,Set(exten(all)=PICKUP ${EXTEN})
exten => _*8.,n,Pickup(${EXTEN:2})

Si un telephone sonne, par exemple le 6001 appelé depuis le 6000, en faisant *8# j'intercepte l'appel

Maintenant, si je veux faire des groupes, cela va etre plus chaud ?

alternatiq
01/05/2011, 16h49
Dans mes config, j'ai bien une extension qui est un chiffre, 10 ou 6000 ou 3256, par exemple

Le Caller ID, c'est Sebastien DUPONT par exemple ...

Mais comment le pbx fait un distinguo entre 10 et Sebastien DUPONT ...

J'ai toujours travailler sur des numéros, le "texte" de l'utilisateur est peu important en téléphonie traditionnelle, c'est même du "lard pour les cochons" ...

Je mets un nom sur les phones, juste pour reconnaitre la conf SIP qui est derrière ... est-ce le bon feeling ?

ffossard
01/05/2011, 16h52
En relisant et relisant et relisant

J'ai modifier mon context [PICKUP] par :

[PICKUP] ;(*8 est le numéro à taper avant l'ext choisie)
exten => _*8.,1,Set(exten(all)=PICKUP ${EXTEN})
exten => _*8.,n,Pickup(${EXTEN:2})

Si un telephone sonne, par exemple le 6001 appelé depuis le 6000, en faisant *8# j'intercepte l'appel

Maintenant, si je veux faire des groupes, cela va etre plus chaud ?

Je t'avais dis dans mon message du 28/04/2011 18h58 d'oublier la double-étoile et de tester avec quelque chose de plus simple pour commencer :)
Le problème d'utiliser le WebGUI, c'est que comme dans Freepbx et Trixbox il y'a des Macro qui empêche d'analyser la CLI pour trouver le problème, je te conseille d'oublier la GUI le temps de tout faire fonctionner, tu verra comme ça ira plus vite :na:

Pour les groupes, il faut mettre les bonnes variables dans sip.conf (callgroups, pickupgroups): http://www.voip-info.org/wiki/view/Asterisk+callgroups+and+pickupgroups

alternatiq
01/05/2011, 17h28
Je t'avais dis dans mon message du 28/04/2011 18h58 d'oublier la double-étoile et de tester avec quelque chose de plus simple pour commencer :)
Le problème d'utiliser le WebGUI, c'est que comme dans Freepbx et Trixbox il y'a des Macro qui empêche d'analyser la CLI pour trouver le problème, je te conseille d'oublier la GUI le temps de tout faire fonctionner, tu verra comme ça ira plus vite :na:

Pour les groupes, il faut mettre les bonnes variables dans sip.conf (callgroups, pickupgroups): http://www.voip-info.org/wiki/view/Asterisk+callgroups+and+pickupgroups

Oui je suis d'accord avec toi, mais comme je travaillais sur une prod, j'ai préféré arrêter et commencer une VM de test, le temps de monter et vérifier ..

Mon SIP.conf et blindé de commentaires, il y a une 15aines de lignes avec :

;!
;! Automatically generated configuration file
;! Filename: sip.conf (/etc/asterisk/sip.conf)
;! Generator: Manager
;! Creation Date: Sun May 1 14:02:17 2011
;!
;
; SIP Configuration example for Asterisk
;

[general]
context = default ; Default context for incoming calls
allowoverlap = no ; Disable overlap dialing support. (Default is yes)
bindport = 5060 ; UDP Port to bind to (SIP standard port for unencrypted UDP
bindaddr = 0.0.0.0 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all)
tcpenable = no ; Enable server for incoming TCP connections (default is no)
tcpbindaddr = 0.0.0.0 ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces)
srvlookup = yes ; Enable DNS SRV lookups on outbound calls
subscribecontext = default

[basic-options](!); a template
dtmfmode = rfc2833
context = from-office
type = friend

[natted-phone](!,basic-options); another template inheriting basic-options
nat = yes
canreinvite = no
host = dynamic

[public-phone](!,basic-options); another template inheriting basic-options
nat = no
canreinvite = yes

[my-codecs](!); a template for my preferred codecs
disallow = all
allow = ilbc
allow = g729
allow = gsm
allow = g723
allow = ulaw

[ulaw-phone](!); and another one for ulaw-only
disallow = all

Je pense que comme tu dis, la structure entre un asterisk basic et un asterisk avec GUI, ils ont modifier le structure ... c'est pas aux mêmes endroits les infos ...

Je vais donc chercher ...

ffossard
01/05/2011, 19h16
Dans le sample, tu peux tout virer et repartir à zéro, c'est pas un soucis.

alternatiq
18/05/2011, 09h06
Bonjour,

Par défaut mon Asterisk fait déjà une surveillance des lignes ...
Je ne sais pas si c'est natif, ou dû au Asterisk GUI de l'installation.

Après une fresh install si je fais un "core show hints" dans la console j'aurais :

ipbx*CLI> core show hints

-= Registered Asterisk Dial Plan Hints =-
14@default : SIP/14 State:Idle Watchers 0
15@default : SIP/15 State:Idle Watchers 0
16@default : SIP/16 State:Idle Watchers 0
10@default : SIP/10 State:Idle Watchers 0
11@default : SIP/11 State:Idle Watchers 0
12@default : SIP/12 State:Idle Watchers 0
13@default : SIP/13 State:Idle Watchers 0
21@default : SIP/21 State:Unavailable Watchers 0
20@default : SIP/20 State:Unavailable Watchers 0
----------------
- 9 hints registered

Donc la je vois bien les phones allumés et ceux qui ne le sont pas et ceux qui sont occupés ou qui sonnent.

J'essaye de trouver le contexte qui les a déclaré, car dès que je cré un compte c'est auto il est dans ce contexte ...

J'aimerais y ajouter des "RingGroup" est-ce possible pour surveiller un groupe d'entrée et afficher sur les phones que cela sonnent pour intercepter ...

une idée ?

Merci à vous

ffossard
18/05/2011, 18h54
Les joies des distributions packagées et de leurs choses fonctionnant d'origine on ne sait pas trop comment, qu'on cherche à modifier sans trouver d'aide car pas vraiment de communauté autour :)
(ptit coup de pub: t'a essayé Xivo ? :whistle: )

Tu veux superviser un ring-group en fait ?

alternatiq
22/05/2011, 17h42
Tu veux superviser un ring-group en fait ?

Oui exact, mais j'ai fait des tas de recherche en Find sur le rep /etc/asterisk avec différentes "string" mais je trouve pas la déclaration des hints par défaut.

Y-a-t-il un forum ou support pour l'asterisk Web-gui ?

Merci pour le coup de main en attendant ...

ffossard
22/05/2011, 22h20
Oui exact, mais j'ai fait des tas de recherche en Find sur le rep /etc/asterisk avec différentes "string" mais je trouve pas la déclaration des hints par défaut.

Y-a-t-il un forum ou support pour l'asterisk Web-gui ?

Merci pour le coup de main en attendant ...

En forum de support, à mon avis chez Digium et nul part ailleurs, asterisk-gui ne passionne pas les foules :/

Si le répertoire de config est bien /etc/asterisk (vérifiable dans le fichier asterisk.conf), les hints doivent être dans extensions.conf ou un fichier inclus dans celui-ci, ça peut se trouver, mais peut-être qu'asterisk-gui fonctionne très différemment ... (encore une raison de ne pas l'utiliser, c'est le bordel pour trouver le fonctionnement d'un truc basique)