[Gelöst] Übertragung von Namen statt Nummer nach aussen

xrated

Mitglied
Mitglied seit
2 Jul 2012
Beiträge
788
Punkte für Reaktionen
1
Punkte
18
Bin ja zu 1&1 gewechselt und mir hat ein angerufener berichtet das er am Display nicht meine Nummer sieht sondern die Callerid die ich fürs Telefon im Peerabschnitt eingetragen habe in der Form:
callerid="name" <nr>
Wenn ich mich nicht täusche wurde sogar die Nummer falsch übertragen.

Ist das bei euch auch so? Ob das nur zwischen 1und1 (vermutlich) oder auch bei anderen ist, hab ich noch nicht geschaut.

Lässt sich das mit CALLERID(name-pres) und CALLERID(num-pres) im Dialplan wieder überschreiben?
 
Zuletzt bearbeitet:
Innerhalb des eigenen Providers wo der Call quasi die SIP Infrastruktur nicht verlässt, werden die Namen und Nummern mitunter durchgeschliffen. Ich würde in Deinem abgehenden Kontext mittels Set(CALLERID(all)=....) sowohl name als auch num auf Deine Nummer setzen.
 
all ist natürlich auch ne Idee, dachte man muss das über pres machen.

Edit
Und da ich grad dabei bin, wollte ich die 49 bei eingehenden Nummern entfernen aber irgendwas klappt da nicht. Im Log taucht von der Sektion gar nichts auf. Setze ich ein Goto von Zeile 10 in die erste Zeile dann funktioniert der Sprung.

Code:
exten => 49meinenr,1,Set(COUNTRY=${CUT(CALLERID(num),,-2)}) ; gets second field and everything before i.e. 49
same => 2,GotoIf($["${COUNTRY}" = "49"]?3:5)
same => 3,Set(CALLERID(num)=${STRREPLACE(CALLERID(num),49,0,1)}) ; searches 49 and replaces with 0, doing max 1 time
same => 4,Goto(10)
same => 5,GotoIf($["${COUNTRY}" = "43"]?6:8)
same => 6,Set(CALLERID(num)=${STRREPLACE(CALLERID(num),43,0043,1)})
same => 7,Goto(10)
same => 8,GotoIf($["${COUNTRY}" = "41"]?9:10)
same => 9,Set(CALLERID(num)=${STRREPLACE(CALLERID(num),41,0041,1)})
same => 10,Goto(incoming-1und1,${EXTEN},1)
same => n,Hangup
 
Zuletzt bearbeitet:
Set(COUNTRY=${CUT(CALLERID(num),,-2)})

Meinst Du damit nicht eher Set(COUNTRY=${CALLERID(num):0:2}) ?

Irgendwie kommt mir der ganze Code etwas umständlich vor.
Code:
Set(CALLERID(num)=${IF($["${CALLERID(num):0:2}"="49"]?0${CALLERID(num):2}:${CALLERID(num)})})
Set(CALLERID(num)=${IF($["${CALLERID(num):0:1}"="0"]?${CALLERID(num)}:00${CALLERID(num)})})
macht aus einem führenden 49 eine 0 und setzt bei allem anderen (nicht unterdrückten) 00 vorne dran.
 
Ok, dass ist natürlich auch ne Möglichkeit, wusste gar nicht das man Variablen so einfach modifizieren kann.
Und Ortsgespräche kommen zum Glück mit Vorwahl rein.

Aber warum ging das oben eigentlich nicht?
 
Das CUT kann so nie ein zweistelliges Ergebnis haben, also werden die GotoIf alle mit false durchrauschen. Daran kann auch ein Goto auf Prio 1 nichts ändern. Was Du da gebaut hast ist bestenfalls eine Endlosschleife.
 
Du hast bei CUT(CALLERID(num),,-2) kein Trennzeichen angegeben, also wird standardmäßig - verwendet. Ein - kommt in der Callerid aber sehr wahrscheinlich nicht vor, deshalb liefert CUT kein Ergebnis. Anders steht das da auch nicht. :gruebel:

Langsam wird das ordentlich OT, aber es ist ja Dein Thread :cool:

Die Exten kann man nicht direkt ändern, man muss mit Goto eine neue anspringen. In der Kürze wäre das in etwa so
Code:
exten => _ZX.,1,Goto(01234{EXTEN})
exten => _0ZX.,1,was-auch-immer

Damit Notrufe keine Vorwahl bekommen musst Du eine eigene exten => _11[02] definieren, die hat Vorrang gegenüber der _ZX. (longest match).

Ich hoffe doch sehr, dass von einem 1&1 Anschluss Notrufe möglich sind!
 
Darauf bezog ich mich: "CUT(somevar,,-2)" would give the 2nd field and everything before.

Da ich beim rauswählen sowieso einen "presort" context habe, geht das mit dem goto super
 
2nd field, nicht 2nd character ;-)

somevar = foo-bar-bla-blub
${CUT(somevar,,-2)} => foo-bar
${somevar:0:2} => fo
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,578
Beiträge
2,254,305
Mitglieder
374,461
Neuestes Mitglied
MelvinBenton
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.