[Gelöst] Mehrere abgehende SIP Accounts oder Wählkontexte je nach Extension

tomi_wunder

Neuer User
Mitglied seit
10 Okt 2011
Beiträge
36
Punkte für Reaktionen
0
Punkte
6
Hallo,
ich habe mehrere externe Rufnummern (sechs an der Zahl) und noch mehr interne Endgeräte. Mein Ziel ist es, daß wenn ein bestimmtes Endgerät ein Amtsgespräch führt, eine bestimmte externe Rufnummer verwendet wird.
Beispiel (1..10 sind meine Telefone und A..C meine externen MSNs):
1,2,5 -> A
3,4,9,10 -> B
6,7,8 -> C
Wenn jetzt mein Telefon '1' jemanden (externen) anruft, dann soll dem Angerufenen die MSN 'A' angezeigt werden.
Ruft Telefon '3' nach draußen, dann soll der Angerufene die MSN 'B' sehen, oder wenn beispielsweise Telefon '8' rausruft, dann soll 'C' beim Angerufenen zu sehen sein.

Soweit so schön. Für jede meiner externen MSNs habe ich auf meiner (dem Asterisk-Server vorgeschalteten) Fritzbox (Vorgabe meines Providers) ein 'Telefoniegerät' (entspricht 'nem SIP-Registrar, mit dem sich mein Asterisk dann verbinden kann) angelegt. In der sip.conf meines Asterisk-Servers gibts entsprechend für jedes dieser Telefoniegeräte u.A. einen Absatz, der ungefähr so aussieht:
Code:
[fritzbox_MSNA]
type=peer
context=from-fritzbox
insecure=port,invite
;canreinvite=no
username=620
fromuser=620
secret=meingeheimespasswortfuerdiesenregistrar
host=fritz.box
fromdomain=fritz.box
qualify=yes
nat=no
transport=tcp

Entsprechend gibts natürlich auch noch die Absätze fritzbox_MSNB, fritzbox_MSNC,....

Für's Rauswählen hab ich der extensions.conf (im default-context) eine Wählregel fürs Rauswählen drin, die momentan einen fixen Wählkontext, wie den o.g. fritzbox_MSNA verwendet.
Code:
exten => _0[0-9].,1,Dial(SIP/${EXTEN:1}@fritzbox_MSNA)
same  => n,Hangup()

Somit wird, egal welche meiner Extensions nach draußen wählt immer die MSN 'A' (respektive 'B', 'C', je nachdem was ich eben in die extensions.conf reinschreibe) verwendet. Das ist nicht wirklich im Sinne des Erfinders – also nicht in meinem Sinne – (siehe obiges Beispeil).

Ich hätte wohl schon eine Idee, wei eine Wurstellösung mit "GotoIF()" und "${CALLERID(num)}" aussehen könnte, aber wie macht man das eigenlich ordentlich?

Danke!
MfG
Tom
 
Zuletzt bearbeitet:
Unbeachtlich dessen, dass das mit dem default-context schon aus Sicherheitsgründen nicht unbedingt eine gute Idee ist, ergibt sich für Dein Szenario folgende einfache Lösung:

Wir haben die "SIP-Provider" fritzbox_MSNA; fritzbox_MSNB und fritzbox_MSNC
Wir haben 10 Nebenstellen, die jeweils fest über einen der "SIP-Provider" ihre abgehenden Gespräche nach extern führen sollen, die Nebenstellen sind per SIP angeschlossen.

Lösungsvariante:

sip.conf (für jede Nebenstelle in deren Kontext einfügen):
Code:
setvar=PROVIDER=fritzbox_MSNA; (oder fritzbox_MSNB oder fritzbox_MSNC, je nach NSt)

extensions.conf
Code:
;exten => _0[0-9].,1,Dial(SIP/${EXTEN:1}@fritzbox_MSNA)
exten => _0[0-9].,1,Dial(SIP/${EXTEN:1}@${PROVIDER})

Hinweis: Diese Lösungsvariante funktioniert mit allen Chenneltreibern, die setvar unterstützen. Für Chenneltreiber ohne setvar-Unterstützung geht es so leider nicht, da wäre tatsächlich die CALLERID-Variante eine gängige - wenn auch unschöne - Überlegung.
 
Hi abw1oim,
das ist genau das, was ich gesucht hab!

Danke ^25 ;-)
 
Kostenlos!

Statistik des Forums

Themen
248,897
Beiträge
2,303,575
Mitglieder
378,535
Neuestes Mitglied
Richbrothers brotherhood