Hi,
Ich verwende Asterisk SVN-branch-1.6.2-r231302.
Da es ja mit Asterisk 1.6.2 nach wie vor nicht möglich ist, die Nummer externer Anrufe bei Pickup vorher zu sehen, habe ich versucht, das Problem mit je 2 Identitäten zu umgehen.
Bei den 4 Snom-Telefonen sind also jeweils 2 Identitäten eingerichtet (z.B. 11 und 91, 12 und 92, 13 u. 93, 14 u. 94). Die Identitäten 9x sind stumm, ohne Klingelton eingerichtet. Die Identitäten 1x sind mit Klingelton eingerichtet.
exten => 123,n,Dial(SIP/11&SIP/92&SIP/93&SIP/94)
Funktioniert soweit ausgezeichnet, jeder sieht die eingehende Nummer, klingeln tut nur die Nebenstelle 11. Wenn jetzt allerdings die Nebenstelle 11 selber telefoniert oder nur den Hörer abgehoben hat, um selber zu wählen, klingelt an dieser Nebenstelle nichts.
Also müsste vorher der Status des Telefons gecheckt werden und dann z.B. mit einer gotoif-Verzweigung auf eine passende Extension umgeleitet werden z.B.
exten => 123,n,Dial(SIP/91&SIP/12&SIP/93&SIP/94)
Jetzt habe ich es zunächst mal mit ChanIsAvail() versucht (in der sip.conf qualify = yes, qualifyfreq=1). Das Problem ist, dass hier nur 0 "UNKNOWN" und nicht z.B. 3 für BUSY (wenn der Hörer abgenommen wurde) zurückgegeben wird . Das wurde ja auch hier schon mehrfach diskutiert, dass zu diesem Zweck bei SIP ChanIsAvail() nicht geeignet ist.
Als nächstes habe ich es mit der Funktion DEVICE_STATE versucht, also z.B.
exten => 123,n,GotoIf($[ ${DEVICE_STATE(SIP/11)="NOT_INUSE" ]?10:20)
exten => 123,10,Dial(SIP/11&SIP/92&SIP/93&SIP/94)
exten => 123,20,Dial(SIP/91&SIP/12&SIP/93&SIP/94)
Das funktioniert soweit, allerdings ergibt DEVICE_STATE immer nur "INUSE" und "NOT_INUSE", nie z. B. "BUSY", wenn der Hörer abgenommen ist. Das gleiche mit EXTENSION_STATE.
Besteht hier das gleiche Problem bei SIP-channels?
Man könnte auch die Nebenstelle 11 kurz anklingeln lassen und dann den DIALSTATUS ermitteln, was aber nicht sehr elegant ist.
Besteht eventuell noch eine andere Möglichkeit, den Status eines SIP-channels vor Anwählen zu ermitteln.
Für Tips wäre ich dankbar
Gruss
Thomas
Ich verwende Asterisk SVN-branch-1.6.2-r231302.
Da es ja mit Asterisk 1.6.2 nach wie vor nicht möglich ist, die Nummer externer Anrufe bei Pickup vorher zu sehen, habe ich versucht, das Problem mit je 2 Identitäten zu umgehen.
Bei den 4 Snom-Telefonen sind also jeweils 2 Identitäten eingerichtet (z.B. 11 und 91, 12 und 92, 13 u. 93, 14 u. 94). Die Identitäten 9x sind stumm, ohne Klingelton eingerichtet. Die Identitäten 1x sind mit Klingelton eingerichtet.
exten => 123,n,Dial(SIP/11&SIP/92&SIP/93&SIP/94)
Funktioniert soweit ausgezeichnet, jeder sieht die eingehende Nummer, klingeln tut nur die Nebenstelle 11. Wenn jetzt allerdings die Nebenstelle 11 selber telefoniert oder nur den Hörer abgehoben hat, um selber zu wählen, klingelt an dieser Nebenstelle nichts.
Also müsste vorher der Status des Telefons gecheckt werden und dann z.B. mit einer gotoif-Verzweigung auf eine passende Extension umgeleitet werden z.B.
exten => 123,n,Dial(SIP/91&SIP/12&SIP/93&SIP/94)
Jetzt habe ich es zunächst mal mit ChanIsAvail() versucht (in der sip.conf qualify = yes, qualifyfreq=1). Das Problem ist, dass hier nur 0 "UNKNOWN" und nicht z.B. 3 für BUSY (wenn der Hörer abgenommen wurde) zurückgegeben wird . Das wurde ja auch hier schon mehrfach diskutiert, dass zu diesem Zweck bei SIP ChanIsAvail() nicht geeignet ist.
Als nächstes habe ich es mit der Funktion DEVICE_STATE versucht, also z.B.
exten => 123,n,GotoIf($[ ${DEVICE_STATE(SIP/11)="NOT_INUSE" ]?10:20)
exten => 123,10,Dial(SIP/11&SIP/92&SIP/93&SIP/94)
exten => 123,20,Dial(SIP/91&SIP/12&SIP/93&SIP/94)
Das funktioniert soweit, allerdings ergibt DEVICE_STATE immer nur "INUSE" und "NOT_INUSE", nie z. B. "BUSY", wenn der Hörer abgenommen ist. Das gleiche mit EXTENSION_STATE.
Besteht hier das gleiche Problem bei SIP-channels?
Man könnte auch die Nebenstelle 11 kurz anklingeln lassen und dann den DIALSTATUS ermitteln, was aber nicht sehr elegant ist.
Besteht eventuell noch eine andere Möglichkeit, den Status eines SIP-channels vor Anwählen zu ermitteln.
Für Tips wäre ich dankbar
Gruss
Thomas