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:

clan

Mitglied
Mitglied seit
21 Apr 2005
Beiträge
266
Punkte für Reaktionen
0
Punkte
0
zapata.conf, pridialplan='international' könnte helfen.
 
U

unisys

Guest
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
 

Maik

Gesperrt
Mitglied seit
1 Apr 2004
Beiträge
1,778
Punkte für Reaktionen
0
Punkte
0
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.
 

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
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.
 
U

unisys

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

Maik

Gesperrt
Mitglied seit
1 Apr 2004
Beiträge
1,778
Punkte für Reaktionen
0
Punkte
0
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.
 
U

unisys

Guest
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:
 

Maik

Gesperrt
Mitglied seit
1 Apr 2004
Beiträge
1,778
Punkte für Reaktionen
0
Punkte
0
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(...)
 
U

unisys

Guest
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... ;)
 

Maik

Gesperrt
Mitglied seit
1 Apr 2004
Beiträge
1,778
Punkte für Reaktionen
0
Punkte
0
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. :)
 
U

unisys

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

Maik

Gesperrt
Mitglied seit
1 Apr 2004
Beiträge
1,778
Punkte für Reaktionen
0
Punkte
0
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.
 

clan

Mitglied
Mitglied seit
21 Apr 2005
Beiträge
266
Punkte für Reaktionen
0
Punkte
0
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.
 

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
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.
 
U

unisys

Guest
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
 

Maik

Gesperrt
Mitglied seit
1 Apr 2004
Beiträge
1,778
Punkte für Reaktionen
0
Punkte
0
Dann solltest du evtl. erst mal 'name' ändern. ;)

@clan: Im Standard taucht AFAIK alles mögliche auf aber kein type-of-numer.
 
U

unisys

Guest
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
 
U

unisys

Guest
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
 

Maik

Gesperrt
Mitglied seit
1 Apr 2004
Beiträge
1,778
Punkte für Reaktionen
0
Punkte
0
Wenn ich das richtig sehe, hast du's,1,NoOp' vergessen.
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,340
Beiträge
2,021,292
Mitglieder
349,892
Neuestes Mitglied
trashaccount