regexp für ausgehende gespräche

bitzner

Neuer User
Mitglied seit
22 Mrz 2007
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
hallo,

wie erreiche ich, dass jeder "interne" benutzer über ein bestimmtes, eigenes "öffentliches" SIP-Konto telefonieren kann, ohne dies manuell in der extensions.conf nachzuführen?

sip.conf (auszug)
Code:
[general]
port=5060
bindaddr=0.0.0.0
context=default
useragent=bla
register=>41325100000:[email protected]:5060/41325100000
register=>41325109999:[email protected]:5060/41325109999
...

[9941325100000]
type=friend
context=from-intern
secret=1234
host=dynamic

[9941325109999]
type=friend
context=from-intern
secret=1234
host=dynamic

...

[41325100000]
type=friend
context=from-sipprovider
secret=PASSWORD
host=voipgateway.org
username=41325100000
fromuser=41325100000
fromdomain=voipgateway.org
nat=yes
insecure=very
qualify=yes
canreinvite=no

[41325109999]
type=friend
context=from-sipprovider
secret=PASSWORD
host=voipgateway.org
username=41325109999
fromuser=41325109999
fromdomain=voipgateway.org
nat=yes
insecure=very
qualify=yes
canreinvite=no

...
...

extensions.conf
Code:
[from-intern]
exten=>_.,1,Dial(SIP/${EXTEN}@WASMUSSICHTUN,20,tT)

...

den kontext from-sipprovider hab ich weggelassen, da er für das problem irrelevant ist.

nun möchte ich folgendes erreichen: 9941325100000 telefoniert IMMER über 41325100000 und 9941325109999 IMMER über 41325109999. Bei 4 nummern könnte ich dies ja statisch programmieren, aber bei 100 oder 1000?
Deshalb frage ich mich, welchen code ich oben bei WASMUSSICHTUN einzufügen habe, dass immer der korrekte ausgehende kanal (abgeleitet von der benutzer-telefon-id) gewählt wird.

da die internen nummern den externen gleichen, könnte man auch die vorderen zwei zeichen abschneiden.

danke für jede anregung!

edit: lasst euch nicht vom pattern _. irritieren, das werd ich noch anpassen ;)
 
Naja, was in meinem Kurs dazu geschrieben steht, ist nicht ganz das, was hier wirklich gesucht wird. Trotzdem empfiehlt es sich natürlich immer, den Kurs durchzuarbeiten.


Zu dem Problem in diesem Thread hier:

Code:
exten => _X.,1,dial,SIP/${EXTEN}@{CALLERIDNUM:2}|20|Tt

Das ist alte Asterisk-Syntax und wird auf aktuellen Versionen so nicht direkt funktionieren, es soll Dir aber das Prinzip verdeutlichen: Du mußt die CALLERID(num) verwenden, die dem Endgerät zugeordnet ist. Mit :2 wird die 99 am Anfang abgeschnitten. Das Ergebnis entspricht Deinem Ausgangskontext.

Und nun kommt Dein Part (ich will Dir ja nicht alles einfach auf dem silbernen Tablett präsentieren) finde die richtige Syntax ;)
 
Servus,

Vielen Dank für die Kompetente Hilfe!!

Angepasst sieht der funktionstüchtige Code so aus:

Code:
exten=>_X.,1,Dial(SIP/${EXTEN}@41${CALLERID(num):4},20,r)

THX!

edit: geändert ;)
 
Zuletzt bearbeitet:
Bitte ändere noch in
Code:
exten=>_[COLOR="Red"]X[/COLOR].,1,
damit Dein Asterisk nicht versucht, auch die extension "h" beim Auflegen an den Provider zu schicken.

ja ich weiß, daß Du oben geschrieben hast, daß Du das Pattern noch anpassen willst - aber hier lesen auch viele Neulinge mit, die einfach aus Unwissenheit gedankenlos abschreiben bzw. mit copy&paste arbeiten
 
Kostenlos!

Statistik des Forums

Themen
247,201
Beiträge
2,263,693
Mitglieder
375,687
Neuestes Mitglied
der_koelner_telefonhansel