Dialplan Skript vorhandenen Context überschreiben

Hallo,

wir wollen die standardmäßig von pascom nicht genutzte queuerules.conf verwenden, um in einer Warteschlange definiert die Gewichtung (Penalty) zu reduzieren, da dies im aktuellen Skill Based Routing leider nicht vorgesehen ist (siehe auch dieses Thema: Skill Based Routing - Fehler im Skript).

Ich bin auch soweit, dass ich die Rules in die queuerules.conf manuell eintragen kann und diese nicht mehr durch die mobydickcmd überschrieben wird. Allerdings fehlt in dem jeweiligen main Context im Dialplan der Eintritt in die Queue (in diesem Fall “50”) mit der jeweiligen Rule aus der queuerules.conf.
So muss:
exten => int,n,Queue(50,${TMP_QUEUE_DIALOPTIONS})
in
exten => int,n,Queue(50,${TMP_QUEUE_DIALOPTIONS},,,,,,,myrule)
geändert werden (vollständige Dokumentation hier: http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/ACD_id288932.html

Die Änderung kann ich natürlich manuell machen, über die CLI ein “core reload” anstoßen und es funktioniert wie gewünscht, allerdings ist es nicht bootsicher bzw. wird beim Anwenden der Telefonieeinstellungen überschrieben.
Die Frage ist, wie kann ich das am saubersten bootsicher lösen?

Nun habe ich herausgefunden, dass ich über ein Skript den vorhandenen Context ergänzen kann, allerdings müsste ich den standardmäßig erzeugten löschen oder zwei Zeilen austauschen.
Geht das? Kann ich in einem Dialplan Skript über die GUI erstellt sagen, lösch erstmal alles oder tausch folgene Zeilen aus? Den eine Umleitung in einen anderen eigenen Context hat für meine Begriffe den Nachteil, das die Return- und damit die Standardbehandlung wieder auftreten würde oder?

Danke für jegliche Unterstützung und Grüße
Johannes Heidenreich

Hi,

wenn ich es richtig sehe geht es dir ja um den Queueaufruf der im “Standarddialplan” nicht deinen Erwartungen entspricht. Du kannst mittels einbinden vorher ggf deinen eigenen Code im gleichen Context vor dem regulären setzen, ist halt unschön. Besser wäre aber vermutlich ein Dialplanscript mit eigener Durchwahl in dem du dann die Queue nach deinen Wünschen auffrufst:
exten => s,1,Queue()
same => n,Return() //oder Hangup()

Natürlich könntest du hier vorher Bedingungen prüfen (im Script oder einen Callrouter vorlagern der dann auf manuell auf main,{dialplanscriptdurchwahl},1 abwirft beispielsweise).

Grüße,
Steve

Hallo Steve,

danke für deine Antworten, ich habe jetzt für dieses Problem einen anderen, “saubereren” Weg gefunden. In der queues.conf gibt es einen Parameter “defaultrule=myrule”, damit ist meine Änderung am “Standarddialplan” nicht mehr notwendig. Die “myrule” habe ich entsprechend in der queuerules.conf definiert und diese aus der automatischen Generierung genommen.

Trotzdem vielen Dank für die schnelle Hilfe.

Grüße
Johannes