Heranholen eines Anrufs („Pickup")

In der bisherigen Konfiguration werden Gespräche des überwachten Teilnehmers nur angezeigt. Wir wollen aber auch die Möglichkeit schaffen, ein Gespräch heranzuholen, das an einem anderen Apparat eingeht.[1]

Man unterscheidet dabei zwischen dem gezielten Heranholen eines Anrufs von einem einzelnen Benutzer (Directed Pickup) und dem Heranholen eines Anrufs von einer Benutzergruppe (Group Pickup).

Directed Pickup im Dialplan

Für den Directed Pickup reicht eine einzige Extension, die das Heranholen über *8<nst> ermöglicht:

[interne-benutzer]

; ... Ihre Hints und Dial-Regeln ...

; Gesprächsübernahme (PickUp)
exten => _*8X.,1,Set(nst=${EXTEN:2})
 same => n,Verbose(1,${CALLERID(num)} will Anruf von ${nst} holen)
 same => n,Pickup(${nst}@interne-benutzer)

Wählt ein Benutzer jetzt *821, holt er den gerade auf Nebenstelle 21 klingelnden Anruf zu sich.[2]

Konfiguration des Telefons für Pickup

Damit die BLF-Taste den klingelnden Anruf nicht nur anzeigt, sondern auch durch Drücken heranholt, braucht das Telefon zusätzlich den Pickup-Präfix. Wie das konkret konfiguriert wird, unterscheidet sich je nach Hersteller — die Grundidee ist überall gleich: zur überwachten Nebenstelle wird ein Pickup-Code vermerkt.

Snom: Bei „Ziel" bzw. „BLF" zusätzlich zur überwachten Nummer mit |-Trennzeichen den Pickup-Präfix eintragen. Für Nebenstelle 21 mit Pickup-Code *8 also:

21|*8

Das Snom wandelt das beim Speichern automatisch in die passende SIP-URI um und wählt beim Drücken der blinkenden Taste *821.

Weitere Snom-Hinweise:

  • Ab Firmware 7.1.33 / 7.3 muss die Tastenfunktion BLF statt Nebenstelle/Ziel verwendet werden.

  • In den „Erweiterten Einstellungen" muss „Dialog-Info Call Pickup" aktiviert und „Pakete vom Registrar filtern" deaktiviert sein.

Grandstream benutzt oft statt *8. In dem Fall passen Sie einfach das Dialplan-Pattern entsprechend an (X. statt *8X.).

Yealink, Fanvil, Cisco bieten eine eigene BLF-Funktion pro Tasten, die den Pickup-Code im Telefon-Setup aufnimmt — die Extension im Asterisk-Dialplan bleibt gleich.

Heranholen von einer Gruppe

Soll ein Anruf von einer Gruppe von Nebenstellen herangeholt werden („Abteilung Verkauf"), gibt es zwei gleichwertige Wege.

Variante A: Sammel-Nebenstelle

Die Gruppe bekommt eine eigene Nebenstelle (z. B. 20), hinter der alle Mitglieder stehen:

[interne-benutzer]

; Verkaufs-Sammelruf
exten => 20,hint,PJSIP/21&PJSIP/22&PJSIP/23
exten => 20,1,Dial(PJSIP/21&PJSIP/22&PJSIP/23,40)

; Gesprächsübernahme der Verkaufs-Gruppe
exten => _*820,1,Verbose(1,${CALLERID(num)} will Anruf von Gruppe Verkauf holen)
 same => n,Pickup(21@interne-benutzer&22@interne-benutzer&23@interne-benutzer)

Am Telefon wird als überwachte Nebenstelle 20 eingetragen (Snom: 20|*8), der Hint zeigt den Gruppenstatus.

Variante B: PICKUPMARK

Eleganter ist PICKUPMARK: Die Mitglieder einer Gruppe tragen alle dieselbe Channel-Variable PICKUPMARK, und Pickup() greift per Name auf die Gruppe zu. Vorteil: man braucht keine extra Sammel-Nebenstelle.

[interne-benutzer]

; Jeder Verkaufs-Mitarbeiter bekommt PICKUPMARK=verkauf gesetzt
exten => _2X,1,Set(__PICKUPMARK=verkauf)
 same => n,Dial(PJSIP/${EXTEN},40)

exten => 21,hint,PJSIP/21
exten => 22,hint,PJSIP/22
exten => 23,hint,PJSIP/23

; Sammelruf (optional, wenn man auch unter 20 anrufen soll)
exten => 20,hint,PJSIP/21&PJSIP/22&PJSIP/23
exten => 20,1,Set(__PICKUPMARK=verkauf)
 same => n,Dial(PJSIP/21&PJSIP/22&PJSIP/23,40)

; Heranholen aus der Verkaufs-Gruppe
exten => _*820,1,Verbose(1,${CALLERID(num)} will Anruf von Gruppe Verkauf holen)
 same => n,Pickup(verkauf@PICKUPMARK)

Das doppelte Underscore __PICKUPMARK sorgt dafür, dass die Variable beim Anruf weitervererbt wird; nur dann kann Pickup() sie auf dem klingelnden Zielchannel lesen.


1. Die Telefonanlagen-Funktion Pickup wird im Deutschen meist als Heranholen oder Rufübernahme bezeichnet.
2. Zur Beschreibung der Applikation Pickup() siehe die offizielle Dokumentation unter https://docs.asterisk.org.