Call Back mit Asterisk

AltF1

Neuer User
Mitglied seit
3 Jul 2004
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
Geht das ?

Ich möchte gerne Call Back machen.
Das heist wenn ich in Deutschland unterwegs bin möchte ich mein XXL zu Hause auch nutzen können.

Ich stelle mir das so vor:

Ich sitze im Hotel und rufe mein Asterisk Server an.
Lasse ca. zwei mal klingeln und lege dann wieder auf.
Der Asterisk Server rut auf die soeben angerufene Nummer an und schaltet mir den zweiten ISDN kanal frei.
Somit kann ich auf dem zweiten ISDN kanal mein eigentliches Ziel anrufen.

Geht das ?
Gibts das ?
Kann der das ?
Was muß ich dafür tuhen damit er das kann ?


thx AltF1
 
In dem Fall ist das Problem die Rückrufnummer. Wenn Du das freischaltest kann ja jeder dieses Feature nutzen. Für Callback zu einer bestimmten Nummer gibt es ein Beispiel bei Kapejod

jo
 
Moin und willkommen hier :)

1.) Ja, sowas kann man machen (selber noch nicht eingerichtet, ist mir aber schonmal von leuten vorgeführt worden)
2.) Mit einem Mix aus Asterisk-Funktionen + AGI-Skripte zum selbermachen
3.) s.o.
4.) http://www.voip-info.org/tiki-index.php?page=Asterisk auto-dial out
http://www.digium.com/downloads/asterisk_whitepaper.pdf
Im wesentlichen sollte das so tun, wie in dem pdf auf seite 11 beschrieben ("Ringback"). Du definierst eine Rufnummer unter der Dein * von aussen erreichbar ist, schickst Du den Anrufer in eine ringback-extension, die einmal kurz klingeln lässt (aber den Anruf gar nicht erst annimmt) und wenn Du auflegst, wird der Rückruf initiiert, wo ein Callfile generiert wird, das eine vordefinierte Nummer anwählt und dann den Angerufenen in einen DISA-Kontext steckt, wo er sich mit PIN gegenüber dem Server identifizieren kann und dann alle intern definierten Rufnummern anwählen kann. Da kann man dann auch noch Skripte reinpacken, die dann den zweiten ISDN-Kanal verwenden usw usf.[/url]
 
wenn ich das richtig verstanden habe dann geht das nur mit einer festgelegten Rufnummer die zurückgerufen wird ?

cu AltF1
 
Schau dir mal das an:

Hi there,

I just give you the script (in Python) I have just written in case of someone would like to implemant this. I think it is more simple than the one we can see over the net... It uses DISA (security issues ==> limit access with contexts and the password !!) and CAPI but it should work with type of channel.

Basically, you ring your asterisk and the line goes down after 1 ring.
Asterisk calls you back with a tonality and you have to enter a password to dial any extension. The advantage of using DISA is that you can acces any services you want (=> voicemail...)

If you would like to comment it, do not hesitate !

--------------------------------
[root@asterisk1]# cat /var/lib/asterisk/agi-bin/callback.py

#!/usr/bin/env python
import sys

context="incoming"
extension="300"
canal = "CAPI/02xxx89127:"+sys.argv[1]
cf = open("/var/spool/asterisk/outgoing/"+sys.argv[1]+".call",'w+')
cf.write("Channel:"+canal+"\nMaxRetries:2\ncontext:"+context+"\nextension:"+extension+"\npriority:1\nRetryTime:10\nWaitTime:20\n")


[root@asterisk1]# cat /etc/asterisk/extensions.conf | grep -i 300 exten => 300,1,DISA,9641|incoming exten => 300,2,Hangup


das ist aus der Asterisk-Mailingliste....
Ich habs nicht probiert - weil ich Callback anderes realisiert habe (feste callback-files für meine authorisierten nummern).

bei mir schaut das so aus:
extensions.conf:
;callback-fuer-verena
exten => 9999999/01726664444,1,Wait(1)
exten => 9999999/01726664444,2,system (cp /var/spool/asterisk/verena_handy.call /var/spool/asterisk/outgoing/)

exten => 9999999/01726664444,3,Wait(1)
exten => 9999999/01726664444,4,Hangup

wobei 999999 die MSN ist die für Callback eingerichtet ist und 017266644444 die Callback-berechtigte Rufnummern.

Die Datei verena_handy.call sieht dann so aus:
Channel: CAPI/9999999:B01726664444
Context: capidialtone
Extension: s
SetVar: CALLERIDNUM=01726664444
MaxRetries: 2
RetryTime: 1

der dazu passenden context CAPIDIALTONE sieht so aus:
[capidialtone]
exten => s,1,Dial,CAPI/@<abgehendeMSN>:b
exten => s,2,Hangup

alles klar?

Gruß
[email protected]
 
ja naja
soweit alles klar
ich werde das einfach mal eifügen und sehen was passiert

Danke für die antworten

cu AltF1
 
Hallo!

Gerne möchte ich auch sowas realisieren..aber irgendwie klappts nicht ganz. Immer, wenn ich das File kopiere, meldet Asterisk folgendes:

Code:
-- Attempting call on SIP/<abgehend>:B<anzuwählend> for s@callback:1 (Retry 1)

Mar  6 21:34:15 WARNING[27662]: chan_sip.c:1384 create_addr: No such host: <abgehend>

Mar  6 21:34:15 NOTICE[27662]: channel.c:1817 __ast_request_and_dial: Unable to request channel SIP/<abgehend>:<anzurufen>

Was mache ich da falsch?
 
Hi
du musst auf jedenfall das B weglassen (bei :B<anzuwaehlend>) - das ist nur für ISDN und macht einen "early-B connect" oder so (man hört damit die Netzbetreiberansagen - wie z.B. Tarifinfos). Das gibts bei SIP nicht.

mfg
Thorsten
 
Hi!

Juhu, vielen Dank...bin nun schon viel weiter. Nun möchte ich in das Call-File die Nummer des Anrufers reinschreiben. Dies klappt aber irgendwie nicht.

Code:
exten => 2,1,system(echo "Channel: SIP/0001${CALLERIDNR}@sipsnip Context: callback, > /etc/asterisk/call-files/test.call)
exten => 2,2,system(cp /etc/asterisk/call-files/test.call /var/spool/asterisk/outbox/

Die Variable ${CALLERIDNR} wird anscheinend einfach nicht beachtet... im File steht SIP/0001@sipsnip. Weiss jemand, wie man diese dynamisch einbauen könnte?

Denn wenn das klappt, kann ich von überall her anrufen und das Call-File wird dynamisch generiert.

Ich hoffe, das ist auch noch machbar. :)
 
Die Variable heisst CALLERIDNUM nicht ...NR. Ich denke mal das duerfte dein Problem beheben. :)
 
Hehe, ist eindeutig schon zu spät für solche Experimente. ;-)

Vielen Dank!

Nur noch ein Problem: Ich kriege keine Zeilenumbrüche hin (normalerweise mit > machbar). Daran scheiterts noch. Ansonsten würde es klappen.

Weiss da noch jemand Rat?
 
Bau dir doch einfach ein shell-skript, dass das call-file generirert und uebergib dem skript einfach nur noch die notwendigen parameter. Das ist dann IMO auch uebersichtlicher.
 
Hallo,

bin noch nen *-Anfänger und bastel schon ne ganze Weile mit Callfiles rum.
Leider bekomme ich keine Callfiles erstellt.
Für AGI (PHP etc.) stelle ich mich zu doof an.

Könnte jemand mal sonen Shell-Script für mich posten.
INFO: Habe AsteriskWin23, falls das nen Problem darstellt.

Möchte, dass der Asterisk auf Anruf ein Callfile erstellt.
Erstmal, dass ich mich anrufe und dann sofort mein IP-Telefon Klingelt und ein anderes IP-Telefon anruft.
Callfile sieht so aus:
Code:
Channel: SIP/3001
MaxRetries: 2
RetryTime: 60
WaitTime: 30
Context: callback
Extension: 3001
Priority: 1

in der extensions.conf steht folgendes:
Code:
[callback]
exten => s,1,Dial,SIP/3000|55|Ttr

Hoffe, dass mir jemand helfen kann.
Bekomme es auch nicht hin Callfiles mit dem system(echo"xxx" > filename.file)-Befehl zu erstellen.
Das würde mir nämlich auch schon reichen. Vllt. ist mir das sogar bisschen lieber als die Variante mit dem Script.


EDIT: Also das mit dem System-Befehl get immer noch nicht.
Aber ich weiß jetzt warum das PHP-Script nicht lief. Auf AsteriskWin32´ist kein PHP installiert.
Habe es jetzt also mit einem Perl-Script hinbekommen.


MfG Taaz
 
Zuletzt bearbeitet:
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.