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

Fallweise Rufnummernunterdrückung - wie mit Asterisk ?

Dieses Thema im Forum "Asterisk ISDN Allgemein" wurde erstellt von blacky, 26 Okt. 2004.

  1. blacky

    blacky Neuer User

    Registriert seit:
    30 Juni 2004
    Beiträge:
    15
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    Mit SetCallerID vor dem Dial-Befehl kann ich wunderbar meine ISDN-Nummern / MSN's bei rauswählen setzen. Das klappt soweit.

    Ich habe lt. Telekom "Fallweise Rufnummernunterdrückung" aktiviert (haben die mir extra nochmal an der Hotline bestätigt). Wenn ich aber nun SetCallerID("XXX <>") oder nur SetCalerID("<>") oder SetCallerID ("") eingebe, wird immer die Standard-Haupt-MSN von der Telekom verschickt. So geht es also nicht.

    Dann habe ich gelesen, dass man bei der Telekom *31# vor der eigentlichen Nummern mitsenden muß. Wenn ich das aber im Dial-Befehl einfach davorsetze z.B. Dial(ZAP/g1/*31#123456) wählt er gar nicht mehr raus. Geht auch nicht.

    Wichtig ist mir: Ich will die Nummernübertragung nicht komplett deaktivieren aber auch nicht immer aktiviert haben sondern dies eben Fallweise ein- und ausschalten können.

    Hat da jemand einen Tipp ?

    Thx.
     
  2. skydata

    skydata Neuer User

    Registriert seit:
    13 Okt. 2004
    Beiträge:
    25
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Eine Lösung kann ich dir nicht bieten, aber einen Tipp habe ich: Ich nehme an, dass http://www.voip-info.org/wiki-Asterisk+cmd+callingpres hilfreich für dich sein könnte.

    Da sich bestimmt viele Leute den Thread ansehen, zeige ich hier mal meine Übersetzung von intern:Zap auf extern:CAPI, um das Merkmal Rufnummernunterdrückung der internen ISDN-Telefone nutzen zu können.

    [isdnintern]

    exten => s,1,GotoIf($["${CALLERIDNUM}" = "CID withheld"]?2:4)
    exten => s,2,NoOp("RUFNUMMER UNTERDRÜCKT")
    exten => s,3,SetVar(CLIR=@)
    exten => s,4,SetCIDNum(${PRI_NETWORK_CID})
    exten => s,5,NoOp(${CALLERIDNUM})
    ...

    Wenn an einem internen ISDN-Telefon der Hörer abgenommen wird, übermittelt zaphfc bei aktiver Rufnummernübertragung bisher keine Caller-ID. In PRI_NETWORK_CID ist aber die MSN des Telefons enthalten, weshalb diese als Caller-ID gesetzt wird (s,4). Hieraus kann man sich noch eine Übersetzung für die MSNs intern <=> extern basteln (z.B. vergleichen und die gewünschte externe MSN in der Variablen MSN_EXTERN ablegen).

    Wenn bei einem internen ISDN-Telefon die Rufnummernunterdrückung aktiv ist, übermittelt zaphfc als Caller-ID "CID withheld". Falls dies der Fall ist, wird die Variable CLIR auf "@" gesetzt.

    Diese kann dann in den CAPI-Dial-Aufruf eingebaut werden:

    exten => _X.,1,Dial(CAPI/${CLIR}${MSN_EXTERN}:b${EXTEN},,T)
    ...

    Ist CLIR leer, überträgt chan_capi die Rufnummer mit und wenn CLIR="@" ist, unterdrückt es die Rufnummer.
     
  3. Moo2Mee

    Moo2Mee Neuer User

    Registriert seit:
    16 Nov. 2005
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo auch,

    habe das Beispiel erfolgreich mit Asterisk 1.0.7 und Bristuff 0.2.0 erfolgreich genutzt, aber mir will es einfach nicht gelingen, das Ganze mit Asterisk 1.2.7.1 und Bristuff 0.3.0 hinzubekommen (debian Sarge + Backports von peen.net).

    ${CALLERIDNUM} ist immer die MSN, egal ob ich am Telefon die Rufnummer unterdrücke oder nicht, mein Versuch mit ${CALLINGPRES} hat auch nicht geklappt, der Wert der Variable ist immer Null.

    Wie kann ich jetzt auswerten, ob das ISDN-Telefon am ZapHFC im NT-Modus die fallweise Rufnummernunterdrückung aktiviert hat oder nicht?
     
  4. as2008

    as2008 Neuer User

    Registriert seit:
    6 März 2005
    Beiträge:
    49
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Also ich mache das einfach per Vorwahl.
    0 Anruf mit Rufnummer
    1 Anruf ohne Rufnummernübermittlung

    ---

    [isdn-out]

    exten => _0.,1,Set(CALLERID(num)=123456)
    exten => _0.,n,Dial(mISDN/1/${EXTEN:1},,TW)

    exten => _1.,1,Set(CALLERID(num)=123456)
    exten => _1.,n,SetCallerPres(prohib)
    exten => _1.,n,Dial(mISDN/1/${EXTEN:1},,TW)


    P.S. Möglichweise wäre bei "SetCallerPres" auch ein "Set()" aktueller, hab ich nicht nachgesehen, ob's da auch ne Funktion/Variable für gibt ...
     
  5. Moo2Mee

    Moo2Mee Neuer User

    Registriert seit:
    16 Nov. 2005
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich hab das auch erstmal mit Vorwahl gelöst. Ist aber unschön, wenn zB. das Europa 30i "Anonym" gleich mit einem Tastendruck auswählbar hat, man sich in falscher Sicherheit wiegt, da die Rufnummer trotzdem übertragen wird.

    Bei anonymen Anrufen von ISDN-Telefon -> ZAP-HFC -> 2tes ISDN-Telefon auf dem interen Bus wird "CID withheld" als Text an das anrufende Telefon gesendet. Aber irgendwo muß das doch besser auswertbar für * mitgeschickt werden?
     
  6. Moo2Mee

    Moo2Mee Neuer User

    Registriert seit:
    16 Nov. 2005
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich war irgendwie auf beiden Augen blöd... mit Asterisk 1.2 wird das im CALLERIDNAME mitgeschickt, nicht in der Nummer. Also sieht mein Macro nun so aus:

    Code:
    ;Makro Fallweise Rufnumerunterdrueckung
    [macro-clir]
    exten => s,1,GotoIf($["${CALLERIDNAME}" = "CID withheld"]?2:3)
    exten => s,2,SetCallerPres(prohib_not_screened)
    exten => s,3,Set(CALLERID(number)=${PRI_NETWORK_CID})
    
     
  7. Anus+

    Anus+ Neuer User

    Registriert seit:
    9 Sep. 2005
    Beiträge:
    27
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo!

    Beide Lösungen funktionieren schon recht gut, aber es ist leider immer noch nicht das richtige für mich dabei.

    Bei mir sieht es derzeit aus wie bei skydata. Allerdings erfüllt das noch nicht so ganz seinen Zweck.

    Ich habe zehn Telefone mit unterschiedlichen MSNs. Mit jedem kann ich fallweise die Rufnummer per Tastendruck unterdrücken.

    Wenn ich mit einem bestimmten Telefon telefoniere und die Rufnummer unterdrücke, möchte ich dennoch mit der MSN dieses Telefons "nach draußen" telefonieren (natürlich unterdrückt) und nicht mit einer "festen". Also auf der Telefonrechnung soll (trotz unterdrückter Rufnummer), der Anruf immer noch der richtigen MSN zugeteilt werden. Das Beispiel mit der Vorwahl einer 0 oder 1 scheidet dabei für mich aus.

    Nach dem Beispiel von skydata müsste man quasi die Variable ${MSN_EXTERN} durch eine richtige Variable ersetzen, die wirklich die MSN desjenigen enthält, der den Anruf tätigt.

    Unter http://www.voip-info.org/wiki/view/Asterisk+variables bin ich leider nicht fündig geworden. :-(

    Wie könnte man das ganze bewerkstelligen?


    Gruß, Anus+
     
  8. Moo2Mee

    Moo2Mee Neuer User

    Registriert seit:
    16 Nov. 2005
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Anus+,

    probier doch einfach mein Beispiel einzubinden. Sollte genau das machen, was du willst. Makro Zeile Eins springt bei nicht unterdrückter Nummer zu Zeile 3, ansonsten werden Zeile 2 und 3 ausgeführt.

    Zeile 2 unterdrückt die Anzeige der Rufnummer, Zeile 3 setzt die zu übermittelnde Rufnummer auf die vom rausrufenden Telefon eingestellte. Dieser Punkt ist wichtig, wenn erst abgehoben wird und dann gewählt - dann ist CALLERID(number) noch nicht gesetzt.
     
  9. Anus+

    Anus+ Neuer User

    Registriert seit:
    9 Sep. 2005
    Beiträge:
    27
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Moo2Mee!

    Ich habe Dein Beispiel bereits konfiguriert gehabt, nur leider hat bei mir die Variable PRI_NETWORK_CID keinen Inhalt bzw. existiert vermutlich überhaupt nicht.

    Ich benutze BRIstuff 0.2.0-RC8q unter Debian Sarge 3.1 stable.


    Gruß, Anus+
     
  10. Moo2Mee

    Moo2Mee Neuer User

    Registriert seit:
    16 Nov. 2005
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hai Anus+,

    Bristuff 0.2.0 bedeutet also, Asterisk 1.0.x und auch ZapHFC im NT-Modus, oder? Hatte das Beispiel von skydata 1:1 übernommen, halt nur nach dem Update auf 1.2.x angepasst. Das hatte mit der Variable ${PRI_NETWORK_CID} auch funktioniert mit den Asterisk-debs, die zu Debian Sarge dazugehören.

    Ansonsten mal mit NoOPs im Dialplan auf die Suche nach der Variable machen :) Geben tuts die... http://www.voip-info.org/wiki/index.php?page=Asterisk+zaphfc

    Denne, Didi