- Mitglied seit
- 20 Mrz 2004
- Beiträge
- 1,114
- Punkte für Reaktionen
- 0
- Punkte
- 36
Meine Ausgangssituation: Asterisk auf 7270. Vier DECT-Telefone. Wählregeln sind so, dass es immer über Asterisk geht, der Dialplan entscheidet dann, wie rausgewählt wird: Festnetz über KD, Mobilfunk über Sipgate.
Dann fiel mir auf, dass die Rufnummer nicht unterdrückt wird, wenn ich (laut AVM-Anleitung) mit *31#... rauswähle (entspricht der Auswahl Optionen, Anonym Rufen, Ein vor einem Anruf bei MT-F/MT-D). Also hab ich mal Sip-Debug angeschmissen, und mir angeguckt, wie AVM das macht. Also, der Sip-Header 'From:' wird auf anonymous gesetzt:
Ok, das kann man auslesen, indem man die Variable SIP_HEADER(From) benutzt:
Eigentlich könnte man ${SIP_HEADER(From)} direkt zum Vergleich heranziehen, aber da meckert Asterisk, weil die Variable wiederum "-Zeichen enthält. Nach dem Setzen von from sind diese weg, und alles läuft glatt.
Wenn from nun also anonymous enthält, setze ich einen Prefix zum Rauswählen. Bei KabelDeutschland ist das *67* :
und bei Sipgate ist es *31 :
Beim Wählen wird der Prefix dann der zu wählenden Nummer vorangestellt ...
... und der Ruf geht anonym raus.
Udo
Dann fiel mir auf, dass die Rufnummer nicht unterdrückt wird, wenn ich (laut AVM-Anleitung) mit *31#... rauswähle (entspricht der Auswahl Optionen, Anonym Rufen, Ein vor einem Anruf bei MT-F/MT-D). Also hab ich mal Sip-Debug angeschmissen, und mir angeguckt, wie AVM das macht. Also, der Sip-Header 'From:' wird auf anonymous gesetzt:
Code:
From: "anonymous" <sip:[email protected]>
Code:
exten => _X.,n,Set(from=${SIP_HEADER(From)})
Wenn from nun also anonymous enthält, setze ich einen Prefix zum Rauswählen. Bei KabelDeutschland ist das *67* :
Code:
exten => _X.,n,Set(pfx=${IF($["${from}":"anonymous"]?*67*:)})
Code:
exten => _X.,n,Set(pfx=${IF($["${from}":"anonymous"]?*31:)})
Code:
exten => _X.,n,Dial(SIP/${provider}/${pfx}${EXTEN},60,T)
Udo