Beim klingeln Ton einspielen (z.B. Tarifansage)

BigBadaBoom

Neuer User
Mitglied seit
26 Jun 2008
Beiträge
84
Punkte für Reaktionen
0
Punkte
0
Hi, ich stehe vor dem Problem, dass ich beim klingeln eine Ansage einspielen will.
Im Moment habe ich es so gelöst, dass ich zuerst ein "Playback" und dann erst ein "Dial" mache - das funktioniert zwar aber es ist nicht optimal, da die Ansage teilweise doch etwas länger ist und dann der Benutzer z.B. erst 5 Sekunden lang den Text anhören muss, bis es beim anderen anfängt zu klingeln - spätestens beim 10. mal wenn er die Ansage für die Nummer eh auswendig kennt nervt es. ;-)
Ich würde gerne, genau wie bei manche Anbietern die Tarifansage, meine Ansage in das klingeln hineinbauen, also zuerst mal das andere Telefon zum klingeln bringen, dann die Ansage für den anrufenden Abspielen - am besten so, dass sie abbricht, wenn die andere Seite während der Ansage abhebt. Wenn das nicht der Fall ist, ist auch egal. ;)

Mein versuch bis jetzt sieht etwa so aus:
Code:
[anruf]
exten => s,1,Dial(${SipAccount}/${CallNumber}&Local/s@ansage)

[ansage]
exten => s,1,Wait(3)
exten => s,n,Playback(ansage12,noanswer)
exten => s,n,Congestion()
Leider funktioniert das nicht. Ich bekomme zwar auf der Konsole ein "Playing 'ansage12'" aber höre nur das normale klingeln im Telefon. Weder einfach so, noch wenn ich vorher ein "Answer()" gemacht habe (was ich aber nach Möglichkeit nicht machen will).

Ist sowas überhaupt mit Asterisk machbar?
Danke scho mal im Voraus!

-BBB
 
Vielleicht kannst du den Dial befehl mit der Option "m" verwenden.

http://www.voip-info.org/wiki-Asterisk+cmd+Dial schrieb:
m: Provide Music on Hold to the calling party until the called channel answers. This is mutually exclusive with option 'r', obviously. Use m(class) to specify a class for the music on hold.

http://www.voip-info.org/wiki-Asterisk+cmd+Dial
 
die funktion, die du da suchst, nennt sich "text vor melden", die "BackGround" applikation besitzt eine option "n", damit sollte das gehen, muss aber auch vom endgerät unterstützt werden:

Code:
...
[in-context]
exten = s,1,BackGround(filename,n)
exten = s,n,Dial(SIP/irgendwas,60)
exten = s,n,Hangup()
...

das x-lite z.b. stellt den audio stream erst durch, wenn von der asterisk ein "answer" kommt, also im obigen beispiel erst, wenn das telefon "SIP/irgendwas" abhebt. das merkt man auch daran, dass man ein anderes läuten im x-lite hört, als die asterisk zur verfügung stellt. kommt der anruf über isdn rein, sollte das aber gehen.

grüße,
laureen
 
Hi,
vielen Dank für die Antwort, leider funktioniert das nicht so, wie ich es gerne hätte.
Wenn ich mein Playback(..., nowanswer) in Background(..., n) verwandel, kommt genau das gleiche raus: Zuerst wird der Sound abgespielt, erst wenn die Komplette Ansage fertig ist geht der dialplan weiter zur "Dial"-Anwedung.
Somit habe ich sogar ein kleines Problem dazu erzeugt: Wenn jetzt in dieser Ansagen-Zeit jemand eine Taste drückt versucht "Background" natürlich das ganze auf die neue Extension umzuleiten.
Ich hätte aber gerne, dass der Ton abgespielt wird, erst nachdem "Dial" schon gewählt hat und es schon beim anderen klingelt.

Also:
1. Extension 1000 tätigt über Asterisk einen Anruf an Person X irgendwo im Internationalen Telefonnetz.
2. Asterisk wählt die Rufnummer an
3. Es klingelt bei Person X
4. Asterisk spielt während des Klingelzeichens der Extension 1000 eine Ansage ein
5. Person X hebt ab und Extension 1000 und Person X telefonieren.
 
Entweder bastelst Du etwas mit der "whisper" Option von ChanSpy() und einem .call file, oder Du folgst dem obigen Ratschlag von Crea (einfacher aber wengier flexibel).
 
Jemand erfolgreich?

Hallo,

hat irgendjemand die gewünschte Konstruktion zwischenzeitlich hinbekommen?

Ich habe mich an vielem versucht - aber mein Asterisk macht alles erst dann weiter, wenn er seine Ansage abgespielt hat, sogar dann, wenn ich erst Answer mache und sie dann mit Background abspielen lasse.

Meine einzige Idee ist, schlicht zwei verschiedene Asterisk-Server laufen zu lassen (einer macht die Ansage, der andere leitet weiter), was allerdings nicht wirklich effizient ist...

Danke für jeden Hinweis
grinsebaerchen
 
Ich habe es hinbekommen.
Ich erstelle eine callfile die sofort ausgeführt wird, diese verbindet zwei "local" channels miteinander, beide antworten, die eine Seite macht ein ChanSpy auf den Kanal auf dem ich die Ansage haben will, die andere spielt meine Ansage ab - somit wird die Ansage in den aktiven Channel geschleust. Danach legen beide wieder auf und dieser "pseudo-Anruf" ist beendet.

Mini-Version der zwei local kanäle:
Kanal1: Answer(), ChanSpy(SIP/...,qw), Wait(10), Hangup()
Kanal2: Answer, Wait(0.5), Playback(...,noanswer), Hangup()
 
also bei mir setze ich es als "Musik-vor-Melden"

funktioniert wie folgt:
Code:
exten => 0,1,Answer()
exten => 0,n,Dial,LOCAL/999@PHONES|80|Ttm(ansage)
exten => 0,n,Hangup

dann unter Phones
Code:
exten => 999,Wait(10)    <--- Zeit für die Ansage
exten => 999,Dial,SIP/100|30|Ttr
exten => 999,Hangup

ich hoffe, es hilft..
 
Das ist genau der Effekt den ich nicht wollte: die "Zeit für die Ansage" wird verschwendet, in dieser Zeit wird noch nicht die eigentliche Nummer gewählt sondern man hängt nur in Asterisk rum. Sollte man Wait(10) machen (ist natürlich ein übertriebener Wert) fängt Asterisk erst nach 10 Sek an die Verbindung auf zu bauen, sagen wir mal das dauert 1 Sek. Somit dauert es 11 Sek bis es endlich auf der anderen Seite das erste mal klingelt.

Ich wollte es so, dass die Verbindung während der Ansage schon aufgebaut wird und eventuell sogar schon auf der anderen Seite klingelt. Mit meiner oben beschriebenen Lösung funktioniert es.
 
nimm doch Wait(10) raus. Wir brauchen die 10 Sekunden um uns die Infos der Kunden durchlesen zu können. Wenn du Wait rausnimmst, klingelt das Telefon und die Ansage läuft ja im Hintergrund...
 

Zurzeit aktive Besucher

Neueste Beiträge

Statistik des Forums

Themen
244,872
Beiträge
2,219,909
Mitglieder
371,594
Neuestes Mitglied
AA-Idealbau
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.