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
 

rollo

IPPF-Promi
Mitglied seit
5 Jul 2004
Beiträge
8,288
Punkte für Reaktionen
1
Punkte
38
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
 

rajo

Admin-Team
Mitglied seit
31 Mrz 2004
Beiträge
1,958
Punkte für Reaktionen
0
Punkte
36
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]
 

AltF1

Neuer User
Mitglied seit
3 Jul 2004
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
wenn ich das richtig verstanden habe dann geht das nur mit einer festgelegten Rufnummer die zurückgerufen wird ?

cu AltF1
 

thorsten.gehrig

Mitglied
Mitglied seit
14 Jun 2004
Beiträge
490
Punkte für Reaktionen
0
Punkte
0
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 !

--------------------------------
[[email protected]]# 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")


[[email protected]]# 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]
 

AltF1

Neuer User
Mitglied seit
3 Jul 2004
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
ja naja
soweit alles klar
ich werde das einfach mal eifügen und sehen was passiert

Danke für die antworten

cu AltF1
 

Dani_CH

Neuer User
Mitglied seit
23 Okt 2004
Beiträge
68
Punkte für Reaktionen
0
Punkte
0
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 [email protected]: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?
 

thorsten.gehrig

Mitglied
Mitglied seit
14 Jun 2004
Beiträge
490
Punkte für Reaktionen
0
Punkte
0
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
 

Dani_CH

Neuer User
Mitglied seit
23 Okt 2004
Beiträge
68
Punkte für Reaktionen
0
Punkte
0
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/[email protected] 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. :)
 

Maik

Gesperrt
Mitglied seit
1 Apr 2004
Beiträge
1,778
Punkte für Reaktionen
0
Punkte
0
Die Variable heisst CALLERIDNUM nicht ...NR. Ich denke mal das duerfte dein Problem beheben. :)
 

Dani_CH

Neuer User
Mitglied seit
23 Okt 2004
Beiträge
68
Punkte für Reaktionen
0
Punkte
0
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?
 

Maik

Gesperrt
Mitglied seit
1 Apr 2004
Beiträge
1,778
Punkte für Reaktionen
0
Punkte
0
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.
 

Taaz

Neuer User
Mitglied seit
11 Apr 2005
Beiträge
50
Punkte für Reaktionen
0
Punkte
6
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:

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,901
Beiträge
2,027,943
Mitglieder
351,037
Neuestes Mitglied
st3phan