Fallweise Rufnummernunterdrückung - wie mit Asterisk ?

blacky

Neuer User
Mitglied seit
30 Jun 2004
Beiträge
15
Punkte für Reaktionen
0
Punkte
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.
 

skydata

Neuer User
Mitglied seit
13 Okt 2004
Beiträge
25
Punkte für Reaktionen
0
Punkte
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([email protected])
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.
 

Moo2Mee

Neuer User
Mitglied seit
16 Nov 2005
Beiträge
10
Punkte für Reaktionen
0
Punkte
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?
 

as2008

Neuer User
Mitglied seit
6 Mrz 2005
Beiträge
49
Punkte für Reaktionen
0
Punkte
6
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 ...
 

Moo2Mee

Neuer User
Mitglied seit
16 Nov 2005
Beiträge
10
Punkte für Reaktionen
0
Punkte
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?
 

Moo2Mee

Neuer User
Mitglied seit
16 Nov 2005
Beiträge
10
Punkte für Reaktionen
0
Punkte
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})
 

Anus+

Neuer User
Mitglied seit
9 Sep 2005
Beiträge
27
Punkte für Reaktionen
0
Punkte
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+
 

Moo2Mee

Neuer User
Mitglied seit
16 Nov 2005
Beiträge
10
Punkte für Reaktionen
0
Punkte
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.
 

Anus+

Neuer User
Mitglied seit
9 Sep 2005
Beiträge
27
Punkte für Reaktionen
0
Punkte
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+
 

Moo2Mee

Neuer User
Mitglied seit
16 Nov 2005
Beiträge
10
Punkte für Reaktionen
0
Punkte
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
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
233,320
Beiträge
2,032,803
Mitglieder
351,887
Neuestes Mitglied
lemi6300