Bonjour à tous,
Je voudrais savoir comment puis-je faire pour récupérer un appel sur une extension 101
via mon extension 103 par exemple. Sauriez-vous comment le faire ?
Bien à vous,
Lordaker
Bonjour à tous,
Je voudrais savoir comment puis-je faire pour récupérer un appel sur une extension 101
via mon extension 103 par exemple. Sauriez-vous comment le faire ?
Bien à vous,
Lordaker
Bonjour,
Qu'entends tu par "récupérer un appel" ?
Est ce que tu veux récupérer un appel sur le poste 103 quand le téléphone 101 sonne ? dans ce cas il s'agit d'une interception d'appel
Si je me trompe pourrais tu expliquer plus en détails ce que tu veux ?
MrSerein
oui, c'est natif. pas si simple a implementer que ca parait en dialplan meme si mes souvenirs datent de versions plus vraiment actuelles. Wazo ou freepbx integre ca.
https://wiki.asterisk.org/wiki/display/AST/Call+Pickup
Tu peux soit faire un pickup general ( *8 par defaut generallement ) , tu recuperes le tel qui sonne du groupe ( attention a bien setter le call group et pickup group des extensions pour que ca marche ) . Ou directed pickup ** ext par defaut habituellement, pour une extension particuliere. Avec un tel avec des touches blf, c'est ce qui se passe sous le capot quand tu interceptes un appel en cours ( touche blf du tel qui clignotte )
Francois.
J'ai lu la documentation mais j'ai pas tout compris mais j'arrive à récupérer les appels en interne
entre les poste 101, 102 et 103 en composant les numéros suivants:
_*8101 (pour un appel sur le poste 101)
_*8102 (pour un appel sur le poste 102)
_*8103 (pour un appel sur le poste 103)
Code:[from-internal] ;======================================================= internal Calls exten => _1XX,1,NoOp(## Internal Call to the ${EXTEN} ##) same => n,Ringing() same => n,Set(NOW=${STRFTIME(${EPOCH},,%Y%m%d_%H%M%S)}) same => n,Set(REC_FILE_NAME=OUT_${NOW}_${EXTEN}_${POSTE}.wav) same => n,MixMonitor(${REC_FILE_NAME},b V(1)) same => n,Dial(PJSIP/${EXTEN},20) same => n,VoiceMail(${EXTEN},u) same => n,Hangup() ;======================================================== Pickup Phone Calls exten => _*8101,1,Pickup(101@from-internal) same => n,Hangup() exten => _*8102,1,Pickup(102@from-internal) same => n,Hangup() exten => _*8103,1,Pickup(103@from-internal) same => n,Hangup()
Mais pour les appels entrants via mon CID ci-dessous, ça fonctionne pas, auriez-vous une idée de comment résoudre cet difficulté ?
Code:[from-external] exten => _028992018,1,NoOp(## Incoming Call from ${CALLERID(all)} ##) same => n,Ringing() same => n,Set(NOW=${STRFTIME(${EPOCH},,%Y%m%d_%H%M%S)}) same => n,System(echo "--appel_sortant --- callerid : ${CALLERID(num)} ---- ${STRFTIME(${EPOCH},,%Y/%m/%d %H:%M:%S)} ----" >> /var/spool/asterisk/log/debug.txt) same => n,Set(REC_FILE_NAME=OUT_${NOW}_${EXTEN}_${POSTE}.wav) same => n,MixMonitor(${REC_FILE_NAME},b V(1)) same => n,Set(TYPE=IN) same => n,Set(ODBC(CALLSHISTORY()=${NOW},${POSTE},${CALLERID(num)},${EXTEN},${TYPE})) same => n,Dial(PJSIP/101,60) same => n,VoiceMail(101) same => n,Hangup() exten => _*8101,1,Pickup(101@from-external) same => n,Hangup()
Salut @olppp,
Merci pour ta réponse.
J'ai essayé avec PICKUPMARK mais cela ne fonctionne pas. Ni pour les appels en interne que les appels entrants.
Avec Pickup(${EXTEN}@context), sa fonctionne bien en interne, mais pour les appels externe ça fonctionne pas.
Problème de syntaxe ?
La casse
Code:exten => _*81XX,1,Pickup(${EXTEN:2}@PICKUPMARK) same => n,Hangup()
Non, je l'ai bien écrit dans mon fichier extensions.conf
Code:[from-internal] ;======================================================= internal Calls exten => _1XX,1,NoOp(## Internal Call to the ${EXTEN} ##) same => n,Set(_PICKUPMARK=${EXTEN}) same => n,Ringing() same => n,Set(NOW=${STRFTIME(${EPOCH},,%Y%m%d_%H%M%S)}) same => n,Set(REC_FILE_NAME=OUT_${NOW}_${EXTEN}_${POSTE}.wav) same => n,MixMonitor(${REC_FILE_NAME},b V(1)) same => n,Dial(PJSIP/${EXTEN},20) same => n,VoiceMail(${EXTEN},u) same => n,Hangup() ;======================================================== Pickup Phone Calls exten => _*81XX,1,Pickup({$EXTEN:2}@PICKUPMARK) same => n,Hangup()
Essayes en précisant le context
pas de souligné devant une extension, seulement pour déclarer les pattern.
encore il faut 2 soulignés pour que la variable persiste.Code:[from-external] ;exten => _028992018,1,NoOp(## Incoming Call from ${CALLERID(all)} ##) exten => 028992018,1,NoOp(## Incoming Call from ${CALLERID(all)} ##) same => Set(__PICKUPMARK=101@from-external) same => n,Ringing() same => n,Set(NOW=${STRFTIME(${EPOCH},,%Y%m%d_%H%M%S)}) same => n,System(echo "--appel_sortant --- callerid : ${CALLERID(num)} ---- ${STRFTIME(${EPOCH},,%Y/%m/%d %H:%M:%S)} ----" >> /var/spool/asterisk/log/debug.txt) same => n,Set(REC_FILE_NAME=OUT_${NOW}_${EXTEN}_${POSTE}.wav) same => n,MixMonitor(${REC_FILE_NAME},b V(1)) same => n,Set(TYPE=IN) same => n,Set(ODBC(CALLSHISTORY()=${NOW},${POSTE},${CALLERID(num)},${EXTEN},${TYPE})) same => n,Dial(PJSIP/101,60) same => n,VoiceMail(101) same => n,Hangup()
Code:[from-internal] ;======================================================= internal Calls exten => _1XX,1,NoOp(## Internal Call to the ${EXTEN} ##) same => n,Set(__PICKUPMARK=${EXTEN}@from-internal) same => n,Ringing() same => n,Set(NOW=${STRFTIME(${EPOCH},,%Y%m%d_%H%M%S)}) same => n,Set(REC_FILE_NAME=OUT_${NOW}_${EXTEN}_${POSTE}.wav) same => n,MixMonitor(${REC_FILE_NAME},b V(1)) same => n,Dial(PJSIP/${EXTEN},20) same => n,VoiceMail(${EXTEN},u) same => n,Hangup() ;======================================================== Pickup Phone Calls exten => _*81XX,1,Pickup({$EXTEN:2}@PICKUPMARK) same => n,Hangup()