Parallelruf - Besetzt wenn auf einem der Apparate gesprochen wird

Der_Phil

Neuer User
Mitglied seit
31 Dez 2005
Beiträge
48
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe in der Firma zwei Telefone: ein Snom 370 und ein DECT Telefon.
Derzeit ist das Ganze so konfiguriert, dass ankommende Telefonate als Parallelruf auf beide Nebenstellen gehen. Das Ganze hat aber den Nachteil, dass ein Anrufer ein Freizeichen bekommt, obwohl ich gerade mit dem DECT-Telefon telefoniere und nicht an meinem Platz bin --> es klingelt "ins Leere".


Kennt ihr eine Möglichkeit, dass der Anrufer besetzt bekommt, wenn ich auf dem DECT-Telefon telefoniere, obwohl weiterhin beide Telefone klingeln, wenn jemand anruft?

Vielen Dank für euere Hilfe

Phil
 
Hallo Phil,

Kennt ihr eine Möglichkeit, dass der Anrufer besetzt bekommt, wenn ich auf dem DECT-Telefon telefoniere, obwohl weiterhin beide Telefone klingeln, wenn jemand anruft?

Du schreibst leider nicht, welche Asterisk-Version Du benutzt. Ich verwende den Devstate-Patch aus bristuff mit Asterisk 1.4. Damit kann ich vor dem Anruf sehen, ob ein Gerät besetzt ist. In AEL sieht das bei mir so aus:
Code:
if ("${DEVSTATE(SIP/${Parallel1})}" = "INUSE")
{
    Verbose(1,### Primary extension ${Parallel1} is busy);
    Set(PRI_CAUSE=17);
    Hangup(17);
}
if ("${DEVSTATE(SIP/${Parallel2})}" = "INUSE")
{
    Verbose(1,### Secondary extension ${Parallel2} is busy);
    Set(PRI_CAUSE=17);
    Hangup(17);
}
Dial(SIP/${Parallel1}&SIP/${Parallel2},20);

Parallel1 und Parallel2 sind die beiden SIP-Peers, die angerufen werden sollen. Das ganze funktioniert aber auch mit Zaptel/DAHI Kanälen, falls Du Dein DECT-Telefon direkt am Server angeschlossen hast.

Im normalen Asterisk 1.4 gibt es die DEVSTATE() Funktion nicht. In Asterisk 1.6 heißt sie DEVICE_STATE() und dafür gibt es auch einen Backport auf Asterisk 1.4.

Gruß
Henning
 
Ich mache das mit group_count
Code:
exten => 123,1,Set(GROUP()=gruppe_1)
...
exten => 123,14,GotoIf($[${GROUP_COUNT(gruppe_1)} > 1]?18:15) 
exten => 123,15,Dial(...)
exten => 123,16,Goto(record,s,1)
exten => 123,17,Hangup() 
exten => 123,18,Busy(10)
 
habs gleiche Problem.

ChanIsAvail soll angeblich das nicht richtig mit BUSY Detect auf SIP Peers hinbekommen.

Dial(Local/jimmy@busydetect&Local/johnny@busydetect&Local/sammy@busydetect,30)

mit dem Local Channel Construct wähle ich die Telefone an.

leifmadsen von #asterisk hatte heute den folgenden Tipp parat:

---incoming---> Answer() ---> Asterisk ---> Local ----> Answer()

Man soll in den lokalen Channels den Answer() Befehl mit Playtones(Busy), Busy() und Hangup() verwenden.

Sobald auf dem Local-Channel der Answer() erfolgt ist, wird wie beim normalen Abheben der DIAL Command beendet und keine weiteren Telefone klingeln mehr.

Ich teste das gleich mal aus...

Gruß

Blackvel
 
Parallelruf - Besetzt wenn auf einem der Apparate gesprochen wird - Lösung

Die Lösung heißt ChanIsAvail in Kombination mit der "s" Option.
Am besten beide Peers/Telefone vor dem Multi-Dial abrufen.

NICHT den Status AVAILCHAN oder AVAILSTATUS abfragen.
Der Status gibt bei mir auf Asterisk V1.2 stets UNKNOWN 0 zurück (ohne s Option), kein BUSY oder INUSE.

Viel Spaß bei der Lösung, die [TK]D-Fender auf #asterisk empfohlen hat.
 
Kostenlos!

Statistik des Forums

Themen
248,887
Beiträge
2,303,976
Mitglieder
378,565
Neuestes Mitglied
BenGradish