CallerID in Callfile setzen?

e18

Mitglied
Mitglied seit
9 Sep 2004
Beiträge
420
Punkte für Reaktionen
0
Punkte
16
Szenario:

Ich will, dass ein Kunde seine Rufnummer auf meiner Webseite eingibt und auf Submit drückt, und es wird sofort ein Anruf an diese Nummer initiiert.

Geht mit callfile, soweit kein Problem, ich rufe den Kunden an und verbinde ihn mit unserer Zentrale. Wie bekomme ich es aber hin, dass die Zentrale seine Rufnummer auf dem Display (als CallerID) sieht?

Wo muss ich das im Callfile eintragen? Bisher wird die unter callerid-eingetragene Nummer angezeigt, die auch die callerid des ausgehenden Anrufs ist (meine Rufnummer)

Code:
Channel: SIP/provider/kundenrufnummer
Callerid: 030meinenummer
MaxRetries: 3
RetryTime: 10
WaitTime: 60
Context: from-trunk
Extension: 4930meinenummer
Priority: 1

Habe schon SetVar: CALLERIDNUM=4930meinenr
unter Extension probiert, ohne Erfolg.
 
Zuletzt bearbeitet:
Der Weg ist richtig, die unter Callerid stehende Nummer wird verwendet. Sofern Du sie nicht im Context from-trunk wieder umsetzt sollte das auch funktionieren. Du kannst die Zentrale aber natürlich nur DIREKT über VoIP oder intern anrufen, denn wenn Du über einen Provider oder das Telefonnetz gehst kannst Du keine "fremden" Rufnummern als Absender übertragen.
 
Da Du zuerst den Kunden über das callfile anrufst, wirkt sich die im callfile gesetzte "Callerid: 030meinenummer" auf den Anruf zum Kunden aus - was ja wohl auch so gewollt und richtig ist.

Nimmt der Kunde ab, landet der Anruf im "from-trunk" und genau dort mußt Du vor dem Dial zu Deinem SIP Anschluß ein:

Set(CALLERID(number)=Kundenrufnummer)

einfügen.

hth,
Tin
 
Das ist so nicht ganz richtig. Das Callfile baut einen Channel auf und im Context from-trunk steht diese Nummer bereits als Callerid zur Verfügung. Die meisten SIP-Provider ignorieren ungültige Caller-IDs so dass siese nicht zum Kunden signalisiert wird. Andernfalls musst Du mit

Channel: LOCAL/Kundenrufnummer

aus dem default context heraus den Kunden anrufen. Im default heißt es dann:

exten => _X.,1,Set(CALLERID(number)=030meinenummer)
exten => _X.,n,Dial,SIP/${EXTEN}@provider

Dann sollte der Kunde Deine Nummer und Du seine sehen.
 
Matthias,

ich gehe davon aus, dass die "Zentrale" per SIP-Endgerät mit dem * verbunden ist, also wird nicht über einen Provider gewählt, sondern das SIP-Endgerät (oder eine Warteschleife) direkt angewählt. Mit LOCAL channels mußt Du da auch nicht arbeiten.

Code:
[from-trunk]
exten => 4930meinenummer,1,Set(CALLERID(number)=Kundenrufnummer)
exten => 4930meinenummer,2,Dial(SIP/100)

Wobei SIP/100 dann die "Zentrale" ist.

Auf den default context wird überhaupt nicht zugegriffen, wie kommst Du denn auf sowas ?

Gruß,
Tin
 
Hallo Tin,

Du hast offensichtlich nicht die Frage gelesen. Es geht darum die CallerID im callfile zu setzen. Die Website erzeugt ein Callfile - somit muss die Variable in diesem File mit übergeben werden. Änderungen im Context scheiden somit aus.

Variante 1) Anwahl des Kunden über einen Provider, der eine (falsche) callerid ignoriert (Wie bei 1und1, Sipgate etc.):

Callerid: kundenrufnummer

Zum Kunden wird diese Nummer ignoriert, die (interne) Zentrale hingegen sieht die Kundenrufnummer.

Variante 2) Bei der Anwahl des Kunden muss eine korrekte CallerID angegeben werden da der SIP-Provider diese auswertet:

Callerid: Kundenrufnummer
Channel: LOCAL/Kundenrufnummer

Somit wird der Anruf zum Kunden im default context ausgeführt und dort kann für den zum Kunden gehenden Ruf eine gültige CallerID gesetzt werden.

MfG
Mathias
 
Ich habe die Frage gelesen ;)

e18 will, dass es zuerst beim Kunden klingelt (Call Leg 1), so ist jedenfalls sein Callfile aufgebaut. Channel und Callerid stimmen, dem Kunden wird auch die Nummer der Zentrale angezeigt. Dieser Teil (Call Leg 1) hat also keine Probleme.

Nachdem der Kunde abgenommen hat, springt * aus dem Callfile in den Context [from-trunk] und zwar zur extension 4930meinenummer priority 1, so steht es im Callfile. Den [from-trunk] Context hat er hier nicht geposted aber dort wird ein Dial (Call-Leg 2) zur Zentrale stehen.

Die einzige Frage, die offen bleibt ist, ob die Zentrale direkt per SIP-Endgerät am * angebunden ist oder ob sie via VoIP Provider angewählt wird. Ist sie per SIP angebunden, was ich vermute, dann ist die Lösung seines Problems genau das, was ich geposted habe. Wählt er die Zentrale über einen VoIP Provider aus [from-trunk] heraus an, dann kann er die CallerID in der Regel nicht setzen (Ausnahme z.B. voipjet.com)

Wenn er im Callfile schon die Variable setzen will (damit der gleiche Context [from-trunk] von mehreren Callfiles genutzt werden kann), kann er das natürlich auch:

Callfile:
Code:
Channel: SIP/provider/kundenrufnummer
Callerid: 030meinenummer
SetVar: KDNR=kundenrufnummer
MaxRetries: 3
RetryTime: 10
WaitTime: 60
Context: from-trunk
Extension: 4930meinenummer
Priority: 1

extensions.conf
Code:
[from-trunk]
exten => 4930meinenummer,1,Set(CALLERID(number)=${KDNR})
exten => 4930meinenummer,2,Dial(SIP/100)

Na, vielleicht schreibt e18 ja auch nochmal was dazu...

Gruß,
Tin
 
Das ist natürlich besser. Die Syntax für das SetVar im Callfile war mir neu. Ich hatte schon mal vergeblich danach gesucht. So lässt sich das natürlich besser lösen.

MfG Mathias
 
hallöle, da bin ich wieder.....

vielen Dank TinTin! Zentrale ist in der Tat direkt per SIP am * und die Lösung mit der Variablen im Callfile gefällt mir am besten.

Danke und Gruss aus Berlin
e18
 
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.