Rufnummer bei Transfer

baschdieh

Mitglied
Mitglied seit
15 Sep 2005
Beiträge
416
Punkte für Reaktionen
0
Punkte
0
Hallo,

wollte mal wieder das "alte" Thema zur Diskussion stellen. Bei einem Transfer mit Ruecksprache erhaelt faelschlicher Weise der C-Teilnehmer die CallerID des B-Teilnehmers (Vermittler). Bei einem Blindtransfer funktioniert es richtig.

D.h. ein etwas komplizierter Workaround waere ja jedenfalls den Anrufer auf hold zu setzen, eine Ruecksprache mit B durchzufuehren, auflegen und den Anrufer (der noch auf Hold sitzt) via Transfer zu verbinden.

Sehr aufwendig, wenn man es gewoehnt ist nach der Ruecksprache einen Transfer durch das auflegen des Hoerers statt zu geben.

Koennte man nicht irgendwie den Dialplan mittels dem feature "transfer()" und "h" eine Funktion bauen, die das automatisch durchführt?

So lege ich den Gespraechsteilnehmer auf Hold, halte Ruecksprache und lege auf. Die Funktion "h" fuehrt dann den transfer durch. Nur muesste man die Variablen irgendwie fuettern.
 
Ich sehe da eine Gefahr, oder habe nicht ganz verstanden was du meinst :)

Ein Beispiel

Wenn meine Freundin/Frau mich anruft, nehme ich schon mal gern den Hörer mit "Hallo Mäuschen" ab. Wenn sie nun aber erst woanders gelandet ist und per Transfer mit Ruecksprache zu mir durchgestellt wird, spreche ich ja zunächst mit dem Vermittler, und dann will ich da nicht die Nummer meiner Freundin sehen, weil das könnte sonst peinlich werden :)

Oder meinst du was anderes?

Eine "Lösung" ist, wenn allgemein ein Transfer eine eigene ID hätte, das ginge durch eine SetCallerID im transfercontext. Somit kann ich sehen, ob ich direkt angerufen werde, oder ob jemand zu mir einen Transfer mit Rücksprache machen möchte.

Dies nur als Gedankenanstoß: Wenn du irgendwie die CallerID des anrufenden in den transferkontext rüberretten kannst, kannst du die wirklich die Callerid des anrufenden auf die des vermittlers kopieren, habe ich aber nicht getestet...
 
Ne, ich meine es via "h" extension. Erst sobald der Vermittler auflegt, soll durch die "h" extension ein Transfer getaetigt werden.

D.h. Ruf kommt rein und wird von B-Teilnehmer entgegen genommen. B-Teilnehmer ruft C-Teilnehmer an (mit seiner eigenen Callerid). Erzaehlt wer dran ist. Sobald der B-Teilnehmer auflegt (h-extension). Soll der Transfer über die Anlage durchgeführt werden und somit sieht C-Teilnehmer die CallerID des eingehenden Anrufs...

Wie realisieren es andere? Ist doch sehr nervig, nicht zu sehen, mit wem man verbunden ist.
 
baschdieh schrieb:
D.h. Ruf kommt rein und wird von B-Teilnehmer entgegen genommen. B-Teilnehmer ruft C-Teilnehmer an (mit seiner eigenen Callerid). Erzaehlt wer dran ist. Sobald der B-Teilnehmer auflegt (h-extension). Soll der Transfer über die Anlage durchgeführt werden und somit sieht C-Teilnehmer die CallerID des eingehenden Anrufs...

Klar, wir reden hier vom standard attended-transfer, funktioniert genau so wie du und ich das hier beschrieben haben...

baschdieh schrieb:
Ne, ich meine es via "h" extension. Erst sobald der Vermittler auflegt, soll durch die "h" extension ein Transfer getaetigt werden.

Die "h"-extension bringt dir aber nix, weil da der channel des vermittlers bei Abarbeitung schon tot ist und du keine chance hast irgendwas in dem transferrierten channel zu ändern.

Aber jetzt mal Schritt für Schritt, zuerst musst du mal die originale callerid auslesen. Das machst du vor dem DIAL, der die interen extension anruft (bei mir ist das im internalcontext)

Set(__OriginalCaller=${CALLERID(number)})
Set( __TRANSFER_CONTEXT=transfercontext)
Dial(interne ${EXTEN} anwählen)

Der zwei Unterstriche am Anfang sind wichtig, damit die Variablen den Dial überleben und in den nächsten Scope mit rübergenommen werden.

Jetzt ist es zwingend notwendig, das du unterscheiden kannst, ob eine interne Nummer direkt angerufen wird (a ruft b an) , oder "antransferriert wird" (b macht attendet transfer zu c), weil nur bei dem zweiten willst du ja die Callerid überschreiben - dazu setzt du den zweiten Set und legst damit fest, in welchem Context wir landen, wenn wir die transfer-taste (festgelegt in features.conf) drücken.

Und jetzt noch ein Beispiel-transfercontext

[transfercontext]
exten => _XX,1,Answer()
exten => _XX,2,Set(CALLERID(number)=${OriginalCaller})
exten => _XX,3,Dial(SIP/${EXTEN},60)
exten => _XX,4,Hangup
exten => _XX,104,Playtones(busy)
exten => _XX,105,Wait(4)
exten => _XX,106,StopPlaytones
exten => _XX,107,Hangup

Also als Beispiel, das funktioniert so in 1.2.12

Tschö
John
 
Vielen Dank an jobisoft, hat soweit gefunzt und laeuft bis dato ohne Probleme.

Wenn wir nun noch hinbekommen koennten, dass die Funktionstasten (d.h. die Schnellwahltasten eines Snom Telefons / Tastaturerweiterung) mitspielen, waere es perfekt.

D.h. ich leite einen Transfer mit "*" ein und moechte mir die Nebenstelle zu Tippen ersparen, also druecke ich auf die konfigurierte Funktionstaste. Leider wird dort nicht die Nebenstelle zum "*" (für den Transfer) übermittelt. Hat da ggf. jemand eine Idee?
 
Wir müssten wissen, was technisch passiert, wenn du die Kurzwahltaste drückst. Ruf doch mal mit dem einen Telefon ein anderes an und drücke während des gespräches die kurzwahltaste. hörst du dann an einem der beiden phones dtmf töne?
 
Also wenn ich die Funktionstaste als Feature mit DTMF einrichte, funktioniert die Weiterleitung. Problem ist allerdings, dass es unter Snom die Option "Nebenstelle" gibt. "Nebenstelle" aktiviert dann das Besetzt-Lampen-Feld. Das benoetige ich halt. Sobald ich allerdings diese "Nebenstelle" aktiviere, versucht das Telefon den Transfer selbststaendig zu machen, unabhaengig von "*".
 
Hier hören meine Möglichkeiten auf, ich kenne mich nur mit dem Transfer über Asterisk aus. Von Snom habe ich keine Ahnng :) Mir ist aber die "philosophische Frage" bekannt, ob ich asterisk oder das SIP-Telefon den Transfer verwalten lasse. Beides hat die dir jetzt bekannten Vor- und Nachteile (entweder volle Kontrolle durch Dialplan oder Nutzung von Zusatz-Features des Telefons)

Evtl fragst du mal in nem Snom-Forum nach, wie es möglich ist, diese Besetzlämpchen von außen anzusprechen, also dass du versuchst über den Dialplan diese an/aus schalten zu lassen?

Sorry, von mir kommt da leider nix besseres mehr...
 
@jobisift

Kannst du mir sagen, wie ich das bei der Trixbox integriere? Ich möchte dort auch beim Verbinden die Nummer des angerufenen übergeben und nicht die des Verbinders.

Danke.

Cohibnig
 
Hi,

bei mir macht das die Option "o" im Dial.
Code:
o: Restore the Asterisk v1.0 CallerId behaviour (send the original caller's ID) in Asterisk v1.2 (default: send this extension's number)
 
@kruppi

Wo finde ich das?

Danke.
 
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.