.titleBar { margin-bottom: 5px!important; }

Call Back mit Asterisk

Dieses Thema im Forum "Asterisk Rufnummernplan" wurde erstellt von AltF1, 10 Juli 2004.

  1. AltF1

    AltF1 Neuer User

    Registriert seit:
    3 Juli 2004
    Beiträge:
    53
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Münster
    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
     
  2. rollo

    rollo IPPF-Promi

    Registriert seit:
    5 Juli 2004
    Beiträge:
    8,281
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    JO30SK
    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
     
  3. rajo

    rajo Admin-Team

    Registriert seit:
    31 März 2004
    Beiträge:
    1,958
    Zustimmungen:
    0
    Punkte für Erfolge:
    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]
     
  4. AltF1

    AltF1 Neuer User

    Registriert seit:
    3 Juli 2004
    Beiträge:
    53
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Münster
    wenn ich das richtig verstanden habe dann geht das nur mit einer festgelegten Rufnummer die zurückgerufen wird ?

    cu AltF1
     
  5. thorsten.gehrig

    thorsten.gehrig Mitglied

    Registriert seit:
    14 Juni 2004
    Beiträge:
    490
    Zustimmungen:
    0
    Punkte für Erfolge:
    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 !

    --------------------------------
    [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ß
    Thorsten@Gehrig.de
     
  6. AltF1

    AltF1 Neuer User

    Registriert seit:
    3 Juli 2004
    Beiträge:
    53
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Münster
    ja naja
    soweit alles klar
    ich werde das einfach mal eifügen und sehen was passiert

    Danke für die antworten

    cu AltF1
     
  7. Dani_CH

    Dani_CH Neuer User

    Registriert seit:
    23 Okt. 2004
    Beiträge:
    68
    Zustimmungen:
    0
    Punkte für Erfolge:
    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 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?
     
  8. thorsten.gehrig

    thorsten.gehrig Mitglied

    Registriert seit:
    14 Juni 2004
    Beiträge:
    490
    Zustimmungen:
    0
    Punkte für Erfolge:
    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
     
  9. Dani_CH

    Dani_CH Neuer User

    Registriert seit:
    23 Okt. 2004
    Beiträge:
    68
    Zustimmungen:
    0
    Punkte für Erfolge:
    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/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. :)
     
  10. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Die Variable heisst CALLERIDNUM nicht ...NR. Ich denke mal das duerfte dein Problem beheben. :)
     
  11. Dani_CH

    Dani_CH Neuer User

    Registriert seit:
    23 Okt. 2004
    Beiträge:
    68
    Zustimmungen:
    0
    Punkte für Erfolge:
    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?
     
  12. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    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.
     
  13. Taaz

    Taaz Neuer User

    Registriert seit:
    11 Apr. 2005
    Beiträge:
    50
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    #13 Taaz, 31 Jan. 2006
    Zuletzt bearbeitet: 1 Feb. 2006
    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