[Gelöst] Direct Pickup Problem

hiasB

Neuer User
Mitglied seit
26 Jul 2011
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
Hallo,

folgendes Szenario:

Call1: Mitarbeiter A (DW: 200) (Context A, Pickup/Callgroup 1) -> Anruf nach extern über ISDN (Nummer: 012345678)
Call2: Mitarbeiter B (DW: 300) (Context A, Pickup/Callgroup 1) -> Anruf auf Mitarbeiter C (DW: 400) (Context B, Pickup/Callgroup 2)
Call3: Mitarbeiter D (DW: 500) (Context B, Pickup/Callgroup 2) will Anruf mit **400 von Mitarbeiter C übernehmen hat aber nun Mitarbeiter A in der Leitung der gerade nach extern rufen will
Call 2 geht weiter.

Pickupexten:

Code:
exten => _**.,1,NoOp(${CALLERID(name)} ${CALLERID(num)} will Anruf von ${EXTEN:2}  holen)
exten => _**.,n,SET(GLOBAL(PICKUPMARK)=${EXTEN:2})
exten => _**.,n,Pickup(${EXTEN:2}@PICKUPMARK)

und hier der fehlerhafte Pickup:

Code:
    -- Executing [**400@contextb:1] NoOp("SIP/mitarbeiterd-000015e2", "Mitarbeiter D 500 will Anruf von 400  holen") in new stack
    -- Executing [**400@contextb:2] Set("SIP/mitarbeiterdr-000015e2", "GLOBAL(PICKUPMARK)=400") in new stack
  == Setting global variable 'PICKUPMARK' to '400'
    -- Executing [**400@contextb:3] Pickup("SIP/mitarbeiterd-000015e2", "400@PICKUPMARK") in new stack
       > 0x7f86902a29d0 -- Probation passed - setting RTP source address to 192.168.115.33:16356
    [B]-- SIP/mitarbeiterd-000015e2 answered SIP/mitarbeitera-000015d8[/B]

Nun hat Mitarbeiter D Mitarbeiter A in der Leitung der eigentlich nach extern telefonieren wollte, obwohl bei Pickup die Extension von Mitarbeiter C angegeben wurde.

Kann sich das jemand erklären?

Vielen Dank schon mal
 
Zuletzt bearbeitet:
Wäre es nicht evtl. besser, PickupChan() zu benutzen?
exten => _**XXX,1,PickupChan(SIP/${EXTEN:2})
(Wenn das auf den BLF-Tasten liegt, wird es ganz einfach.)
 
Zuletzt bearbeitet:
hallo,

vielen dank für deine antwort.

leider habe ich da dann das problem, dass ich keine externen anrufe übernehmen kann, die kommen ja dann mit einer anderen extension rein vom incoming context (isdn, sipgate,...)
oder gibts da eine lösung?
 
Auch die nehme ich über die BLF-Taste an, die blinkt ja auch, wenn ein externer Anruf rein kommt.
 
Problem ist auch hier was anderes:

Mein SIP-Benutzer ist nicht die Durchwahl:

-- Executing [**270@context:1] PickupChan("SIP/benutzera-00001aeb", "SIP/270") in new stack
[Dec 10 13:04:10] NOTICE[5015][C-000012c3]: app_directed_pickup.c:467 pickupchan_exec: No target channel found for SIP/270.
-- Auto fallthrough, channel 'SIP/benutzera-00001aeb' status is 'UNKNOWN'
 
Dann muss man das wohl noch anpassen.
 
Zuletzt bearbeitet:
hmm aber eigentlich soll es mit der Lösung die ich oben angegeben ja klappen...
Für was gibts dann diese Funktion wenn man einen Anruf übernehmen will und hat dann einen zufälligen Gesprächspartner in der Leitung. Sogar einen der gerade rausrufen will.
Die Benutzer sind auch in verschiedenen Contexten, Call und Pickupgroups drin.. Deswegen geht mir das gerade nicht in den Kopf warum das nicht klappt
 
Zuletzt bearbeitet:
wir haben asterisk 13 im einsatz...

hm schaut fast so aus als müsste man da mit PickupChan arbeiten und irgendwas davor basteln das der sip-user in die angerufenen extension reingeschrieben wird.
eigentlich schade/komisch das asterisk hier keine zuverlässiges call pickup mitbringt.
 
exten => _**.,n,SET(GLOBAL(PICKUPMARK)=${EXTEN:2})
exten => _**.,n,Pickup(${EXTEN:2}@PICKUPMARK)

Die Anwendung ist falsch. PICKUPMARK darf keine globale Variable sein, diese gibt es ja nur einmal. Das Prinzip geht so:

Code:
[intern]
exten => _XXX,1,Set(__PICKUPMARK=${EXTEN})
 same => n,Dial(SIP/${EXTEN})

[von-extern]
exten => 123454678,1,Set(__PICKUPMARK=200)
 same => n,Dial(SIP/200)

[pickup]
exten => _**X.,1,Pickup(${EXTEN:2}@PICKUPMARK)

PICKUPMARK muss als Channel-Variable für jedes Gespräch gesetzt werden. Pickup(200@PICKUPMARK) holt ein Gespräch (genauer gesagt einen Channel) heran, der PICKUPMARK=200 hat.

Pickup- oder sonstige Gruppen spielen dabei keine Rolle. Wenn Du diese nutzen willst, darfst Du @PICKUPMARK nicht verwenden.
 
vielen Dank mit dem setzen der Channel Variable bei den eingehenden Anrufen klappts jetzt!! :)))
Beim mehrfachen Testen wurde keine falschen Anrufe mehr übernommen.
 

Neueste Beiträge

Statistik des Forums

Themen
244,882
Beiträge
2,220,093
Mitglieder
371,611
Neuestes Mitglied
Mandylion73
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.