.titleBar { margin-bottom: 5px!important; }

Frage: Problem mit Anpassung der Landesvorwahl...

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von unisys, 19 Sep. 2006.

  1. unisys

    unisys Guest

    #1 unisys, 19 Sep. 2006
    Zuletzt von einem Moderator bearbeitet: 21 Sep. 2006
    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?
     
  2. clan

    clan Mitglied

    Registriert seit:
    21 Apr. 2005
    Beiträge:
    266
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    zapata.conf, pridialplan='international' könnte helfen.
     
  3. unisys

    unisys Guest

    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
    
     
  4. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    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.
     
  5. Thomas007

    Thomas007 Aktives Mitglied

    Registriert seit:
    18 Sep. 2005
    Beiträge:
    1,455
    Zustimmungen:
    0
    Punkte für Erfolge:
    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.
     
  6. unisys

    unisys Guest

    Hallooooo,

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

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

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    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.
     
  8. unisys

    unisys Guest

    Hallo,

    Ich meine eine TDM400P (siehe Signatur)...

    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:
     
  9. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hab ich wohl überlesen.

    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(...)
     
  10. unisys

    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... ;)
     
  11. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    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. :)
     
  12. unisys

    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.
     
  13. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    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.
     
  14. clan

    clan Mitglied

    Registriert seit:
    21 Apr. 2005
    Beiträge:
    266
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Upps, stimmt. Sollte ich eigentlich besser wissen...

    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.
     
  15. Thomas007

    Thomas007 Aktives Mitglied

    Registriert seit:
    18 Sep. 2005
    Beiträge:
    1,455
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
     
  16. unisys

    unisys Guest

    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
    
     
  17. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Dann solltest du evtl. erst mal 'name' ändern. ;)

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

    unisys Guest

    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
     
  19. unisys

    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
     
  20. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wenn ich das richtig sehe, hast du's,1,NoOp' vergessen.