[general]
der sip.conf
erforderlich:[general] allowsubscribe = yes notifyringing = yes notifyhold = yes limitonpeers = yes
subscribecontext
und
call-limit
. subscribecontext
besagt, in
welchem Context Asterisk suchen soll, wenn dieser Benutzer den Status
anderer Benutzer "abonnieren" will. In der Regel ist das der Context, in
dem sich auch die internen Benutzer befinden. call-limit
hat eigentlich eine andere Aufgabe, nämlich die Anzahl der
gleichzeitigen Gespräche dieses Benutzers zu beschränken (wenn es auf
einen Wert > 0 gesetzt wird). Es dient hier aber auch dazu, dass
Asterisk überhaupt die Anzahl der gleichzeitigen Gespräche dieses
Benutzers mitzählt, was für den Status (frei/besetzt) wichtig ist. Es
muss also auf einen beliebigen Wert > 0 gesetzt werden, am besten
mindestens auf 2, sonst hat man Probleme bei Transfers.callgroup
[119] und pickupgroup
[120] von Bedeutung. Zum Beispiel darf ein Benutzer mit
pickupgroup=2
Gespräche von anderen Benutzern mit
callgroup=2
heranholen. Dies dient also der
Rechteverwaltung. Da es allerdings nur 64 mögliche Gruppen gibt (0 bis
63), ist diese Methode nur für kleine bis mittelgroße Installationen
brauchbar. Bei großen Installationen setzt man für alle User die gleiche
Gruppe und muss sich dann um die Rechteverwaltung selber kümmern (dazu
später noch ein Hinweis).[21] type = friend context = interne-benutzer secret = 9847825134 host = dynamic mailbox = 2000 subscribecontext = interne-benutzer call-limit = 10 callgroup = 2 pickupgroup = 2
hint
eine
spezielle Priorität, die noch vor der Priorität 1
steht.
Wichtig ist, dass sich die Hints in dem Context befinden, den man in der
sip.conf
(s. o.) mit subscribecontext
angegeben hat, ansonsten werden die Status-Informationen nicht
weitergeleitet. Das ist durchaus Absicht, damit man nicht per se von
allen Telefonen aus alle weiteren überwachen kann. Durch
unterschiedliche Contexte lässt sich also auch eine Art
Berechtigungssystem bauen.[121] Wir beschreiben hier anhand von Beispielen, wie ein Hint
definiert wird. Je nachdem, ob Ihr Dialplan im
extensions.conf
-Format oder in AEL geschrieben ist,
verwenden Sie die eine oder die andere Variante.extensions.conf | extensions.ael |
---|---|
[interne-benutzer] exten => 21,hint,SIP/21 exten => 21,1,Dial(SIP/${EXTEN},40) exten => 21,n,VoiceMail(${EXTEN},u) exten => 22,hint,SIP/22 exten => 22,1,Dial(SIP/${EXTEN},40) exten => 22,n,VoiceMail(${EXTEN},u) | context interne-benutzer { hint(SIP/21) 21 => { Dial(SIP/${EXTEN},40); VoiceMail(${EXTEN},u); } hint(SIP/22) 22 => { Dial(SIP/${EXTEN},40); VoiceMail(${EXTEN},u); } } |
extensions.conf | extensions.ael |
---|---|
[interne-benutzer] exten => 21,hint,SIP/21 exten => 22,hint,SIP/22 exten => _2X,1,Dial(SIP/${EXTEN},40) exten => _2X,n,VoiceMail(${EXTEN},u) | context interne-benutzer { hint(SIP/21) 21 => {} hint(SIP/22) 22 => {} _2X => { Dial(SIP/${EXTEN},40); VoiceMail(${EXTEN},u); } } |
hint
in Asterisk 1.4
nicht mit Pattern[122] geschrieben werden kann.exten => _2X,hint,SIP/${EXTEN}bzw.
hint(SIP/${EXTEN}) _2X => {...
}
wäre
also unzulässig.${EXTEN}
.extensions.conf | extensions.ael |
---|---|
[interne-benutzer]
exten => _2X,hint,SIP/${EXTEN}
exten => _2X,1,Dial(SIP/${EXTEN},40)
exten => _2X,n,VoiceMail(${EXTEN},u) | context interne-benutzer {
hint(SIP/${EXTEN}) _2X => {
Dial(SIP/${EXTEN},40);
VoiceMail(${EXTEN},u);
}
} |
extensions.conf | extensions.ael |
---|---|
[interne-benutzer]
exten => 20,hint,SIP/21&SIP/22
exten => 20,1,Dial(SIP/21&SIP/22,40) | context interne-benutzer {
hint(SIP/21&SIP/22) 20 => {}
20 => {
Dial(SIP/21&SIP/22,40);
}
} |
hint
include =>
meine-hints
einbinden, wo er benötigt wird. Dies ist vor allem
in Asterisk-Versionen vor 1.6 interessant./etc/init.d/asterisk
reload
oder asterisk -rx 'module
reload'
).[119] siehe „callgroup
“
[120] siehe „pickupgroup
“
[121] Diese Methode eignet sich allerdings nicht so gut für datenbankgestützte „Realtime“-Installationen.