Frage: Problem mit Anpassung der Landesvorwahl...

U

unisys

Guest
Hallo,

Wenn ich mich selbst mit dem Handy auf einer VoIP-Leitung anrufe erhalten ich auf meinem SNOM-Telefon die Nummer so dargestellt: +43664xxxxxxx.

Wenn ich jedoch mit dem Handy auf der analogen Festnetznummer (über eine Digium-Karte bzw. mit Hilfe von Zaptel) anrufe erhalten ich nur 0664xxxxxxx, ohne das vorangestellt +43 angezeigt.

Was könnte hierfür Schuld sein oder sollte dies normal sein?
 
Zuletzt bearbeitet von einem Moderator:
zapata.conf, pridialplan='international' könnte helfen.
 
clan schrieb:
zapata.conf, pridialplan='international' könnte helfen.

Hmmm, hat irgendwie nichts daran geändert...

Hier ist mal meine zapata.conf:

Code:
[channels]
language=de
signalling=fxs_ks
pridialplan=international       ; Internationale Anruferkennung
busydetect=yes                  ; Erkennung des Busy-Tones
busycount=5                     ; Anzahl der Busy-Töne bis zur Erkennung
callwaiting=yes                 ; Anklopfen aktivieren
callwaitingcallerid=yes         ; CallerID bei Anklopfen übertragen
threewaycalling=yes             ; Makeln aktivieren
transfer=yes                    ; Verbinden für Makeln aktivieren
echocancel=yes
context=from-pots
group = 1
channel => 1
 
Der Parameter 'pridialplan' ist nur für abgehende Rufe interessant. Man sollte diesen Wert normalerweise auf 'unknown' setzen, weil man ansonsten immer z.B. im internationalen Format wählen muss.

Interessant wäre hier, wie der Anruf ankommend überhaupt signalisiert wird ('pri debug'). Ich gehe mal davon aus, dass dort numbertype national oder unknown signalisiert wird. Wenn die Nummer im internationalen Format ankommen würde, würde jedes Normale Telefon auch die internationale Vorwahl anzeigen, was normalerweise eher unerwünscht ist.
 
Das ist ein Provider Problem. Die verändern die Caller-ID. Einen verlässlichen Standard gibt es da nicht.

Wenn Du eine gepflegte CDR Datenbank haben willst oder brauchbare Rückrufnummern an die Telefone schicken willst musst Du ein wenig programmieren und die Caller-ID auf ein einheitliches Format bringen.
 
Hallooooo,

Maik schrieb:
Der Parameter 'pridialplan' ist nur für abgehende Rufe interessant. Man sollte diesen Wert normalerweise auf 'unknown' setzen, weil man ansonsten immer z.B. im internationalen Format wählen muss.

Alles klar, ich hab das gleich wieder raus gelöscht, denn ich hatte eigentlich mit ausgehenden Gesprächen keine Probleme bisher...

Maik schrieb:
Interessant wäre hier, wie der Anruf ankommend überhaupt signalisiert wird ('pri debug').

Ich habe eine Original Digium Karte mit Zaptel am laufen, also kein ISDN. Hier klappt doch das "pri debug" nicht, was ist denn dafür der äquivalente Befehl? Bin leider derzeit nicht am Asterisk, aber dass "pri debug" nicht klappen kann, ist mir auch so klar...
 
Meinst du jetzt eine analog-Karte (also X100P oder TDM400P)? Da kannst du AFAIK gar nicht weiter debuggen. Da kommt die Rufnummer soweit mir bekannt sowieso nur als Ziffernfolge ohne Typangabe. Deine Telco wird die Nummer also ins "passende" Format umwandeln.
 
Hallo,

Maik schrieb:
Meinst du jetzt eine analog-Karte (also X100P oder TDM400P)? Da kannst du AFAIK gar nicht weiter debuggen.

Ich meine eine TDM400P (siehe Signatur)...

Maik schrieb:
Da kommt die Rufnummer soweit mir bekannt sowieso nur als Ziffernfolge ohne Typangabe. Deine Telco wird die Nummer also ins "passende" Format umwandeln.

Verstehe, die wird also von der Telekom so übertragen und da kann ich gar nichts machen? Kann ich denn dann wenigstens die Anrufe aus dem Inland über die SIP-Leitungen anpassen, dass ich dort keine Landesvorwahl mehr angezeigt bekomme und eine "0" vorweg bei der Orts/Netz-Vorwahl erhalte?

Code:
Beispielsweise statt +43664xxxxxxx nurmehr 0664xxxxxxx,
oder aber auch statt 0043664xxxxxx nurmehr 0664xxxxxxx

Was ich will ist nur eine einheitliche Darstellung auf den Telefonen... :idea:
 
unisys schrieb:
Ich meine eine TDM400P (siehe Signatur)...

Hab ich wohl überlesen.

Verstehe, die wird also von der Telekom so übertragen und da kann ich gar nichts machen? Kann ich denn dann wenigstens die Anrufe aus dem Inland über die SIP-Leitungen anpassen, dass ich dort keine Landesvorwahl mehr angezeigt bekomme und eine "0" vorweg bei der Orts/Netz-Vorwahl erhalte?

Klar geht das. Z.B. ungefähr so:

Code:
exten => XXX/_+43.,1,Set(CALLERID(number)=0${CALLERID(number):3})
exten => XXX/_+.,1,Set(CALLERID(number)=00${CALLERID(number):1})

exten => XXX,1,NoOp
exten => XXX,2,Dial(...)
 
Hallo Maik,

Code:
exten => XXX/_+43.,1,Set(CALLERID(number)=0${CALLERID(number):3})
exten => XXX/_+.,1,Set(CALLERID(number)=00${CALLERID(number):1})
 
exten => XXX,1,NoOp
exten => XXX,2,Dial(...)

Danke dir, sieht ja alles ganz logisch aus, nur hab ich jetzt mit meinem Marko, dass ich nur abgeschrieben habe meine Probleme... *seufz*

Code:
[macro-call]
exten => s,+43.,1,Set(CALLERID(number)=0${CALLERID(number):3})
exten => s,+.,n,Set(CALLERID(number)=00${CALLERID(number):1})
exten => s,n,Dial,${ARG1}/${ARG2}|30|r
exten => s,n,Goto,s-${DIALSTATUS}|1
exten => s-BUSY,1,voicemail,b${ARG2}
exten => s-BUSY,n,Hangup
exten => s-NOANSWER,1,voicemail,u${ARG2}
exten => s-NOANSWER,n,Hangup
exten => s-CONGESTION,1,voicemail,u${ARG2}
exten => s-CONGESTION,n,Hangup

Code:
[from-sip]
exten => 0720xxxxxx,1,macro,call|SIP|31
exten => 0720xxxxxx,1,macro,call|SIP|30

So wie nun mein "marco-call" aufgebaut ist, klappt es auf jeden Fall nicht, das habe ich nun schon gesehen. Ist echt blöd, wenn man was abschreibt und nicht weiss, wie es genau funktioniert - kannst du mir da BITTE weiterhelfen?

Ich muss mir das wirklich mal durchüberlegen... ;)
 
Du solltest das CallerID-Pattern mit '/' und nicht mit ',' abtrennen. Außerdem solltest du bei beiden die Priorität auf '1' setzen. Zusätzlich noch eine weitere s-Extension ohne CallerID-Pattern mit Priorität 1 und Applikation 'NoOp' (genau so wie in meinem Beispiel). Dann sollte es funktionieren. :)
 
Hallo,

Wahnsinn, alles gar nicht so einfach... :mad:

Ich hab es nun mal so gemacht, da einige Versuche scheiterten. Mittlerweile habe ich mitbekommen (darum die auskommentierten Zeilen), dass alle meine Telefone bevorzugt den Wert aus 'name' anstatt von 'number' anzeigen, dies ist aber weiter noch nicht das Problem.

Code:
[macro-call]
exten => s/_+43.,1,Set(CALLERID(number)=0${CALLERID(number):3})
exten => s/_0043.,1,Set(CALLERID(number)=0${CALLERID(number):4})
exten => s,1,NoOP
exten => s,n,Dial,${ARG1}/${ARG2}|30|r
exten => s,n,Goto,s-${DIALSTATUS}|1
exten => s-BUSY,1,voicemail,b${ARG2}
exten => s-BUSY,n,Hangup
exten => s-NOANSWER,1,voicemail,u${ARG2}
exten => s-NOANSWER,n,Hangup
exten => s-CONGESTION,1,voicemail,u${ARG2}
exten => s-CONGESTION,n,Hangup

So klappt es nun dass aus +43664xxxxxxx ein 0664xxxxxxx wird...

Jedoch würde ich mir auch noch sowas wünschen..

Code:
exten => s/_+43.,1,Set(CALLERID(number)=0${CALLERID(number):3})
exten => s/_0043.,1,Set(CALLERID(number)=0${CALLERID(number):4})

Gibts denn sowas wie eine UND-Verknüpfung?

z.b. so:

Code:
exten => s/_+43.,1,Set(CALLERID(number)=0${CALLERID(number):3}) AND Set(CALLERID(number)=0${CALLERID(number):3})

oder so:

Code:
exten => s/_+43.,1,Set(CALLERID(number)=0${CALLERID(number):3})&&Set(CALLERID(number)=0${CALLERID(number):3})

(Bitte nicht nachmachen, die beiden Beispiele klappen sowieso nicht!)

Leider blieb mit bisher noch verborgen wie eine UND-Verknüpfung aussieht, und auch die Suche (vielleicht auch falsche Suche) brachte mich nicht zum gewünschten Ergebnis.
 
Du kannst die weiteren Set-Befehle mit Priorität 2 ausführen und dann halt bei der s-Extension ohne CallerID-Pattern bei Priorität 2 auch wieder ein NoOp eintragen.
 
Maik schrieb:
Der Parameter 'pridialplan' ist nur für abgehende Rufe interessant.
Upps, stimmt. Sollte ich eigentlich besser wissen...

Thomas007 schrieb:
Das ist ein Provider Problem. Die verändern die Caller-ID. Einen verlässlichen Standard gibt es da nicht.

Wenn Du eine gepflegte CDR Datenbank haben willst oder brauchbare Rückrufnummern an die Telefone schicken willst musst Du ein wenig programmieren und die Caller-ID auf ein einheitliches Format bringen.

Natürlich gibt es einen Standard. Am type-of-number kann man erkennen, ob eine Orts- oder Ländervorwahl ergänzt werden muß. Zumindest bei ISDN kann man das sogar in der zapata.conf konfigurieren (aus zapata.conf.sample):

Code:
; sample 1 for Germany 
;internationalprefix = 00
;nationalprefix = 0
;localprefix = 0711
;privateprefix = 07115678
;unknownprefix = 
;
; sample 2 for Germany 
;internationalprefix = +
;nationalprefix = +49
;localprefix = +49711
;privateprefix = +497115678
;unknownprefix =

Das hilft unisys aber vermutlich nicht weiter, obwohl die analoge CallerID die notwendigen Informationen WIMRE auch enthalten sollte.
 
clan schrieb:
Natürlich gibt es einen Standard. Am type-of-number kann man erkennen, ob eine Orts- oder Ländervorwahl ergänzt werden muß. Zumindest bei ISDN kann man das sogar in der zapata.conf konfigurieren (aus zapata.conf.sample):

type-of-number bei Anrufen die per SIP zugestellt werden? Der Ersteller schrieb was von einer VoIP Leitung! Da gibt es von Provider zu Provider Unterschiede.
 
Maik schrieb:
Du kannst die weiteren Set-Befehle mit Priorität 2 ausführen und dann halt bei der s-Extension ohne CallerID-Pattern bei Priorität 2 auch wieder ein NoOp eintragen.

Du meintest sicherlich so...

Code:
exten => s/_+43.,1,Set(CALLERID(number)=0${CALLERID(number):3})
exten => s/_+43.,2,Set(CALLERID(name)=0${CALLERID(name):3})
exten => s,2,NoOP
exten => s,n,Dial,${ARG1}/${ARG2}|30|r

Das klappt aber nicht, da nach Priorität '1' kein '+43' mehr vorne steht und daher der ganze Spass nicht wirklich funktionieren kann, oder denk ich da falsch? Auch der Funktionstest war leider negativ (siehe CLI)...

Code:
    -- Executing Macro("SIP/213.235.242.217-081aa570", "call|SIP|35") in new stack
    -- Executing Set("SIP/213.235.242.217-081aa570", "CALLERID(number)=0664xxxxxxx") in new stack
    -- Executing NoOp("SIP/213.235.242.217-081aa570", "") in new stack
    -- Executing Dial("SIP/213.235.242.217-081aa570", "SIP/35|30|r") in new stack
    -- Called 35
    -- SIP/35-081afab0 is ringing
 
Dann solltest du evtl. erst mal 'name' ändern. ;)

@clan: Im Standard taucht AFAIK alles mögliche auf aber kein type-of-numer.
 
Maik schrieb:
Dann solltest du evtl. erst mal 'name' ändern. ;)

Du meintest wohl bestimmt so...
Manchmal ist es sooo einfach und denkt sooo kompliziert, echt schlimm...

Code:
exten => s/_+43.,1,Set(CALLERID(number)=0${CALLERID(number):3})
exten => s/_+43.,2,Set(CALLERID(name)=0${CALLERID(name):3})
exten => s,2,NoOP
exten => s,n,Dial,${ARG1}/${ARG2}|30|r

Und soooooo klappt es auch wie ich mir das wünsche! :nemma:DANKEEEE
 
EDIT

Nun funktioniert dafür die Wahl zu internen Telefonen nichtmehr... :mad:
Jetzt schmeisse ich bald das Marco für interne Calls raus, oder gibts eine andere Möglichkeit?

/EDIT
 
Wenn ich das richtig sehe, hast du's,1,NoOp' vergessen.
 
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.