Picture of Jürgen 2691
Registered 8 years 289 days
Jürgen 2691 Tuesday, 8 January 2019, 03:47 PM
Voicemail script
Hallo,

ich versuche über ein Script mehrere Ansagen hintereinander zuschalten. Die erste "Ansage" (MoH) soll nach 10 Sekunden unterbrochen werden und eine Ansage von ca. 13 Sekunden abgespielt werden. Anschließend kommt wieder die
Wartemusik.

Wenn ich das Script direkt anrufe funktioniert es einwandfrei. Wenn ich nun in einer in einer WQ anrufe, in der unter "1st Announcement /extern Name/No" das Script eingetragen ist, wird auch auf das Script zu gegriffen. Ich sehe im Trace auch die Zeiteinträge. Allerdings wird nur die Wartemusik abgespielt. Der Zweite Eintrag kommt nicht zum tragen. Wenn ich den ersten Eintrag im Script auskommentiere, dann kommt die zweite Ansage. Es wird aber nicht auf den dritten Eintrag weitergeleitet.

Hier ist das Script:

<!-- ======================= MAIN =========================== -->
<function define="Main">
<store-get root="" name="19_What_is_Love_mit_Text.g711a" out-url="$ctrl"/>
<pbx-prompt url="$ctrl" sec="10"/> <!-- Ansage wird 10 Sekunden abgespielt-->

<store-get root="" name="WaitingQueueService.g711a" out-url="$ctrl1"/>
<pbx-prompt url="$ctrl1"/> <!-- Ansage wird einmal abgespielt, -->

<store-get root="" name="19_What_is_Love_mit_Text.g711a" out-url="$ctrl2"/>
<pbx-prompt url="$ctrl2" sec="30"/> <!-- Ansage wird 30 Sekunden abgespielt -->
</function>
</voicemail>

Evtl. findet jemand den Fehler.

Viele Grüße
Jürgen
Picture of Dominic
Registered 7 years 359 days
Dominic Wednesday, 9 January 2019, 07:32 AM
Re: Voicemail script
Von dem Script hab ich jetzt nicht so viel ahnung aber wäre es nicht einfacher 2 WQ einzurichten

WQ1= Response Timeout auf 10 und bei 1st Announcement URL den pfad zur What ist love...
CFNR auf WQ2

WQ2= Response Timeout auf 30 + die Zeit der WaitingQueueService, Bei 1st Announcement URL der pfad zur WaitingQueueService Datei und bei 2nd Announcement URL der pfad zu What is love und wenn sich das dann immer wieder holen soll einfach eine cfnr auf die WQ2
Picture of Roland
Registered 12 years 347 days
Roland Wednesday, 9 January 2019, 07:43 AM in response to Jürgen 2691
Re: Voicemail script
Hallo Jürgen,
warum fügst du die Ansagen nicht mit einem Audio Editor zu einem file zusammen?
Gruß Roland
Picture of Peter 627
Registered 13 years 122 days
Peter 627 Wednesday, 9 January 2019, 07:55 AM
Re: Voicemail script
Diese Variante hatte ich auch mal laufen, aber als Inno irgendwann die Art des Aufrufs des unter Extern Name/No eingetragenen Objektes in der Waiting Queue geändert hat funktionierte das nicht mehr smile. Ich glaube das war damals irgendwie 10 SR5,6 wo das noch funktionierte und dann irgendwann später mit neueren Versionen wurde was in der Waiting Queue geändert und war dann auch anscheinend nicht mehr änderbar.

Hier ist mal mein Skript, damit kannst du das machen was du willst, aber auch unterschiedliche Ansagen, je nach Anrufernummer. (allerdings kommt die CGPN wegen oben genannten Punktes nicht mehr mit und deswegen läuft nur der default) , vielleicht hilft es dir ja.

<?xml version="1.0" encoding="utf-8" ?>
<voicemail xmlns="http://www.innovaphone.com/xsd/voicemail6.xsd" _ver="VM-60094">

<!-- Music on Hold Peter Stock effexx Telekommunikation GmbH -->
<function define="main">

<pbx-getcallinfo out-cgpn="$cgpn"/>

<index out="$res5" value="$cgpn" pos="1" size="5"/>
<index out="$res3" value="$cgpn" pos="1" size="3"/>
<switch var="$res5">
<!-- Hier Ansagen die auf fünfstellige Kennziffern gefilter werden eintragen -->

<!-- Frankreich -->
<case equal="00033">
<store-get root="" name="FR_Greeting.$coder" out-url="$Ansage"/>
<store-get root="" name="FR_MoH.$coder" out-url="$Warteschlange"/>
<call name="Prompt"/>
<assign out="$fuenf" value="1"/>
</case>
<!--case equal="00034">
<store-get root="" name="ES_Greeting.$coder" out-url="$Ansage"/>
<store-get root="" name="WQ_Spain.$coder" out-url="$Warteschlange"/>
<call name="Prompt"/>
<assign out="$fuenf" value="1"/>
</case-->
</switch>

<if notcond="$fuenf">

<!-- International undefiniert spielt Englischsprachige Ansagen-->
<switch var="$res3">
<case equal="000">
<store-get root="" name="EN_Greeting.$coder" out-url="$Ansage"/>
<store-get root="" name="EN_MoH.$coder" out-url="$Warteschlange"/>
<call name="Prompt"/>
<assign out="$drei" value="1"/>
</case>
</switch>

<!-- National-->
<if notcond="$drei">
<store-get root="" name="DE_Greeting.$coder" out-url="$Ansage"/>
<store-get root="" name="DE_MoH.$coder" out-url="$Warteschlange"/>
<call name="Prompt"/>

</if>
</if>

</function>

<function define="Prompt">
<pbx-prompt url="$Ansage"/>
<pbx-prompt url="$Warteschlange" repeat="true" barge-in="false" />
</function>



</voicemail>
Picture of Roland
Registered 12 years 347 days
Roland Wednesday, 9 January 2019, 08:15 AM
Re: Voicemail script
Hallo Peter,

das funktioniert????

Hmmm. Ist ja eigentlich kein Unterschied zu Jürgens script.
Nur werden bei dir erst die beiden prompt-Variablen definiert und dann beide PBX-Prompt Befehle mit den unterschiedlichen Variablen abgespielt.

Oder die prompt-Option "sek=" macht ein Problem

Gruß Roland
Picture of Roland
Registered 12 years 347 days
Roland Wednesday, 9 January 2019, 08:41 AM
Re: Voicemail script
oder die dynamische coder-Aushandlung mit .$coder

Das kann Jürgen ja mal testen
Picture of Peter 627
Registered 13 years 122 days
Peter 627 Wednesday, 9 January 2019, 08:44 AM in response to Roland
Re: Voicemail script
Ja sicher funktioniert das smile. Wenn du es direkt anrufst, ohne es in einer WQ als Ansage zu verlinken, hast du auch eine CGPN auswertung.
Hatte das früher bei Kunden in WQ's verlinkt, wo je nach CGPN verschiedene Ansagen kommen sollten. Ich hatte das auch nochmal als AVM, sodass du nach den Ansagen eine XFER auf das eigentliche Ziel machst smile.

Dazu musst dann nur unten die letzte Funktion abgeändert werden und ein direktes Rufziel eingetragen werden smile

Hier z.B zur "2000".

<function define="Prompt">
<pbx-prompt url="$Ansage"/>
<!--pbx-prompt url="$Warteschlange"/-->
<pbx-xfer e164="2000" />
</function>

Hab gerade nochmal das Ticket rausgesucht ###229947### (falls jemand das liest ^^). Hier konnte ich nachstellen, dass alles noch mit 10 SR25 funktioniert hat.

Gruß Peter
Picture of Jürgen 2691
Registered 8 years 289 days
Jürgen 2691 Wednesday, 9 January 2019, 09:39 AM
Re: Voicemail script
Hallo,

vielen Dank für die Unterstützung.

Eine zweite WQ gibt es schon. Allerdings erst nachgelagert. Die kommt erst zu m Einsatz, wenn die Warteschlange in der ersten voll ist. Das Ganze wird dann auch mit dem IQMonitor sonst unübersichtlich.

Ich habe das Script bereits bei einem Kunden im Einsatz. Dort klappt es auch. Allerdings ist dort die Version 12R2 14 im Einsatz. Hier teste ich mit der Version
12R2 20. Hängt evtl. damit zusammen.

Und bei dem Kunden gib es zwei PBX (Master - Slave). Ich denke nicht das dies entscheidend ist.

Ich könnte zwar die beiden Files zusammen binden, aber das wäre jedesmal Aufwand, wenn die Ansagen bzw. Wartemusik geändert wird. (Marketing-Ansagen, Weihnachtsansagen, etc.). Mit dem Script wäre das einfacher. So kann der Kunde die Ansage immer eigenständig aufsprechen und die wäre sofort aktiv. Bei Direktanruf klappt das auch. Sieht so aus, als wenn er bei dem Aufruf aus der WQ einige Dinge zwar ausliest aber dann nicht mehr abarbeitet (vergisst). Im Trace kann man sehen, das der Timer und die andere Ansage aufgerufen wird. Am Telefon kommt aber immer nur ein Prompt.

Hier ein Auszug aus dem Trace:

7:3516:833:3 - 0x259eafc:addr=0 voicemail .unknown=http://www.innovaphone.com/xsd/voicemail6.xsd
77:3516:833:3 - 0x259e49c:addr=1 function define=Main
77:3516:833:3 - 0x257a478:addr=2 store-get root= name=19_What_is_Love_mit_Text.g711a out-url=$ctrl
77:3516:833:3 - 0x259f990:addr=3 pbx-prompt url=$ctrl sec=10
77:3516:833:3 - 0x259f7d8:addr=4 store-get root= name=WaitingQueueService.g711a out-url=$ctrl
77:3516:833:3 - 0x257a4b4:addr=5 pbx-prompt url=$ctrl
77:3516:833:3 - 0x259ee48:addr=6 store-get root= name=19_What_is_Love_mit_Text.g711a out-url=$ctrl
77:3516:833:3 - 0x259fa88:addr=7 pbx-prompt url=$ctrl sec=30
77:3516:833:3 - 0x257a3bc:addr=8 return
77:3516:833:3 - iprt.65.0(T):running file='http://172.27.13.21/DRIVE/FLASH/RecordAnnouncement/Ansage_Wartefeld_Betrieb.xml' ver=''
77:3516:833:3 - iprt.65.0(T):0x259e49c:addr=1 function
77:3516:833:3 - iprt.65.0(T):0x257a478:addr=2 store-get
77:3516:833:3 - iprt.65.0(T):assign name='$ctrl' val='http://172.27.13.21/DRIVE/FLASH/RecordAnnouncement/19_What_is_Love_mit_Text.g711a' type=string
77:3516:833:3 - iprt.65.0(T):0x259f990:addr=3 pbx-prompt
77:3516:833:3 - vm.65(T):prompt vmstate=0 url=http://172.27.13.21/DRIVE/FLASH/RecordAnnouncement/19_What_is_Love_mit_Text.g711a?coder=g711a
77:3516:833:4 - OUT.731 -> WEBMEDIA-CH.0 : CHANNEL_INIT OPUS-NB,20,scfx0k0
77:3516:833:4 - OUT.731 -> WEBMEDIA-CH.0 : CHANNEL_INIT G711A,20,scf local
77:3516:833:4 - IN.1072 -> PBX-CHANNEL.1 : CHANNEL_UNPAUSE
77:3516:833:4 - OUT.731 -> WEBMEDIA-CH.0 : CHANNEL_UNPAUSE
77:3516:833:4 - PBX-FTY.2 -> PBX-FTY.2 : FTY_NAME_IDENTIFICATION
77:3516:833:4 - OUT.731 -> PBX-CALL.19 : SIG_SETUP faststart=0 channel=-1 cmd=PROPOSAL cgpn= cdpn=**10 conferenceId=9ee9c25cae355c01f08a009033284e42
CHANNELS:-
77:3516:833:4 - iprt.65.0(T):_vm_timer start=10000ms

Dann sind die 10 Sekunden um und ergeht auf das zweite File:

77:3526:829:7 - iprt.65.0(T):_vm_timer to
77:3526:829:7 - iprt.65.0(T):event=TIMEOUT addr=3 pbx-prompt rc=3
77:3526:829:7 - iprt.65.0(T):0x259f7d8:addr=4 store-get
77:3526:829:7 - iprt.65.0(T):assign name='$ctrl' val='http://172.27.13.21/DRIVE/FLASH/RecordAnnouncement/WaitingQueueService.g711a' type=string
77:3526:829:7 - iprt.65.0(T):0x257a4b4:addr=5 pbx-prompt

77:3526:829:7 - vm.65(T):prompt vmstate=1 url=http://172.27.13.21/DRIVE/FLASH/RecordAnnouncement/WaitingQueueService.g711a?coder=g711a
77:3526:829:7 - iprt.65.0(T):lookup attr=sec as failed
77:3526:843:6 - PBX-CALL.130 -> IN.1072 : SIG_MEDIA_INFO xmit(1 0 0,0,0,24,SRTP) recv(1 0 0,0,16,0,SRTP) 172.27.13.10:23566->172.27.13.128:16464

Das zweite File hört man aber am Telefon nicht. Er spielt das Erste bis zum Ende ab und legt dann auf. Auh wenn ich als Erweiterung "$coder" verwendet statt "g711a"

Viele Grüße
Jürgen

Picture of Jürgen 2691
Registered 8 years 289 days
Jürgen 2691 Monday, 21 January 2019, 03:26 PM
Re: Voicemail script
Hallo,

ich wollte noch einmal nachhören. Kann ich dazu einen Ticket aufmachen?
Wenn ja, was soll ich tracen?

Oder wird der Fall so nicht supportet?

Die Ansagen mit einem Tool zusammenzuführen, fände ich nicht so gut.

Da es außerdem bei einem Kunden mit der Version 12R2 14 funktioniert, habe ich bedenken, was nach einem Update bei dem Kunden passiert.

VG
Jürgen

← You can define your color theme preference here