Dial-Optionen im Callfile

JN3piogZ

Neuer User
Mitglied seit
22 Dez 2006
Beiträge
48
Punkte für Reaktionen
0
Punkte
0
Ich verwende ein Script um Callfiles zu erstellen, dies ist ein Beispiel-Callfile:
Code:
WaitTime: 10
Context: Direktwahl
Extension: 1
Priority: 1
MaxRetries: 3
RetryTime: 20
Set: Rufnummer=0123456789
Channel: SIP/19
In der extensions.conf:
Code:
[Direktwahl]
exten => 1,1,NoOp(Debug: ${Rufnummer})
exten => 1,n,Macro(dialout,${Rufnummer})
exten => 1,n,Hangup()

Was ich jetzt noch erreichen muss ist, dass die Optionen für die "Dial"-Applikation, die aus dem Callfile heraus mein SIP-Phone 19 anruft, gesetzt werden können, so wie man das im Dialplan mit
Code:
Dial(SIP/19,10,tTr)
machen würde.

Wie gebe ich die Optionen "Ttr" im callfile an?
 
Geht so was nicht?
Code:
Setvar: OPTIONEN=Ttr
Code:
Dial(SIP/19,10,${OPTIONEN})

Oder du baust in das Script, mit dem du die callfiles erstellst noch eine Zeile rein, wo du Optionen in die Asterisk-Datenbank schreibst. Später mit dem dial-Befehl rufst du die Parameter aus dieser Datenbank auf.
 
Ich sehe, ich habe mich missverständlich ausgedrückt.

Ich habe doch gar keine DIAL-Zeile, der ich die Optionen mitgeben könnte, weil doch das Erstellen des CallFiles selbst das Dial auslöst. Es geht doch nicht um den Dial-Befehl, der dann aus der Extensions.conf verwendet wird. Im Grunde sind callfiles doch zweistufige Befehle: Wähle erst Nummer 1. Dann, wenn die Verbindung zu Nummer 1 steht, springe zu dem Eintrag "Direktwahl" im Dialplan. Dort mache ich dann einen weiteren Call, um den es hier aber nicht geht. Das erste Dial, das aus dem callfile kommt, dem kann ich die Optionen nicht mitgeben.
 
Das wüsste ich jetzt auch nicht. Schau dir [/URL=http://www.das-asterisk-buch.de/2.0/call-file-parameter.html]das[/URL] mal an, und berichte von deinem Erfolg/Misserfolg.

Da steht zumindest
Im Call File können folgende Parameter angegeben werden:
Channel: <channel>
Der zu benutzende Channel. Dabei gilt die gleiche Syntax wie beim Dial()-Befehl (siehe Abschnitt 27, „Dial()“).

Also müsstest du theoretisch dann doch die Optionen gleich im callfile definieren können.

Nachtrag:

Jep. Bei mir wird callfile direkt in der extensions.conf erstellt und fängt so an
Code:
exten => s,1,system(echo 'Channel: Local/${ARG1}@default' > /var/spool/asterisk/${ARG1})
exten => s,n,system(echo 'Callerid: callback' >> /var/spool/asterisk/${ARG1})
exten => s,n,system(echo 'Context: callback' >> /var/spool/asterisk/${ARG1})
exten => s,n,system(echo 'Extension: s' >> /var/spool/asterisk/${ARG1})

So weit ich das richtig verstanden habe, dann könnte ich in der ersten Zeile bei mir
Code:
exten => s,1,system(echo 'Channel: Local/${ARG1}@default|Ttr' > /var/spool/asterisk/${ARG1})
schreiben. Müsste also genau das sein, was du suchst.
 
Zuletzt bearbeitet:
Ich habe doch gar keine DIAL-Zeile, der ich die Optionen mitgeben könnte [...]

Du könntest bei Channel einen LOCAL-Kanal angeben. Dann geht auch der erste Anruf über den Dialplan, und dort kannst du mit einem normalen Dial-Befehl arbeiten.
 
dann könnte ich in der ersten Zeile bei mir
Code:
exten => s,1,system(echo 'Channel: Local/${ARG1}@default|Ttr' > /var/spool/asterisk/${ARG1})
schreiben.

Also das funktioniert bei mir nicht. Habe ich ausprobiert.

Ich denke ich werde mir FrankITs Vorschlag mal ansehen, ich habe noch nie was mit LOCAL gemacht, muss mich erst einlesen. Weil das LOCAL dann ein DIAL aus der extensions.conf macht, müsste das Angeben von Parametern ja dann problemlos klappen.

Danke an alle erst mal!
 
Gelöst

Ich bekomme kein Freizeichen zu hören.

So ganz klappt das noch nicht, aber mit noch etwas Hilfe von Euch bin ich guter Dinge, dass das hinzubekommen ist. Ich habe jetzt im Callfile
Code:
WaitTime: 10
Context: Direktwahl
Extension: 1
Priority: 1
MaxRetries: 3
RetryTime: 20
Set: Rufnummer=0123456789
Channel: local/21@Direktwahl-in
(21 ist mein SIP-Telefon). In der extensions.conf habe ich dann:
Code:
[Direktwahl-in]
exten => _2X,1,Dial(SIP/${EXTEN},30,Ttr)
exten => _2X,n,ringing()
exten => _2X,103,Hangup


[Direktwahl]
include => sip_phones
exten => 1,1,NoOp(Macro-Dialout)
exten => 1,n,Macro(dialout,${Rufnummer})
exten => 1,n,Hangup()

So weit so gut, das funktioniert nun auch so, wie es soll, d.h. durch Erstellung des Callfiles klingelt mein Sip Phone und nachdem ich abgenommen habe, wird meine Zielrufnummer angerufen. Nur leider bekomme ich kein Freizeichen in meinem Sip-Phone signalisiert. Man hört einfach nichts bis der Gegenüber drangeht oder besetzt ist. Auch mit "playtones" bin ich nicht weiter gekommen.

EDIT: Gelöst, hatte einen Typo im playtones! Geht jetzt!
 
Zuletzt bearbeitet:
Das Problem war, dass ich die dial-Optionen nicht im Callfile definieren konnte. Der Hinweis von FrankIT war, einen LOCAL-channel anzurufen. Das habe ich ausprobiert und das funktionierte auch grundsätzlich, ergab aber das Problem, dass ich dann beim Abheben des Hörers (nachdem ich vom Callfile angerufen wurde) schilchtweg nichts gehört habe (also auch kein Freizeichen), bis der Call zum eigentlichen Zielteilnehmer erfolgreich war (abgenommen und beantwortet) oder eben auch nicht (besetzt/abgelehnt). Gelöst werden konnte das Problem einfach durch ein playtones(ring) vor dem Dial zum eigentlichen Endziel. Das war's schon.
 
Danke JN3piogZ für die ausführliche Erläuterung. Hab nun auch mit einem local Channel probiert - und siehe da, es geht *freu*
 
Kostenlos!

Statistik des Forums

Themen
248,854
Beiträge
2,302,942
Mitglieder
378,504
Neuestes Mitglied
Hallo61Hallo