Callback

mrgoto

Neuer User
Mitglied seit
1 Aug 2006
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Modul pbx_spool.so

Hallo,
gibt es vieleicht das Modul pbx_spool.so für die FB ?

Das Asterisk Packet ist Klasse, jetzt wollte ich noch Callback per Call File machen. Aber nach langem suchen habe ich festgestellt das dafür das Modul pbx_sool.so zuständig ist und dieses fehlt mir.

Kann mir jemand helfen ?

Danke
Mrgoto
 
Callback: kein Kopieren einer Callfile nach chroot /oldroot möglich

Hallo.

Ich versuche eine Callback-Lösung für meine Fritzbox einzurichten. Das ganze läuft so ab:

extensions.conf:
[capi-in1]
exten => _12345,1,Wait(3)
exten => _12345,n,System("chroot /oldroot /var/flash/call.sh")
exten => _12345,n,Hangup

[capidialtone]
exten => s,1,Wait(2)
exten => s,n,Dial(CAPI/ISDN1/123456:01511123456)


/var/flash/call.sh:
#!/bin/sh
cp /var/tmp/testcall.call /var/asterisk/var/spool/asterisk/outgoing/


/var/tmp/testcall.call:
Channel: CAPI/ISDN3/123456:567890
Context: capidialtone
Extension: s
SetVar: CALLERIDNUM=123456
MaxRetries: 1
RetryTime: 10


Leider funktioniert call.sh aus der chroot-Umgebung von Asterisk nicht so wie erwartet: es findet kein /var/asterisk

cp: unable to open `/var/asterisk/var/spool/asterisk/outgoing/': No such file or directory

Der Mount-Point /var/asterisk scheint nach dem zweiten chroot nicht mehr da zu sein. Hat jemand eine Idee?
 
Zuletzt bearbeitet:
chroot ok. Callback noch nicht ok.

Danke, jetzt funktioniert das Kopieren.

Ein weiteres Problem taucht nun auf:

Wenn ich eine Verbindung zwischen dem externen S0-Bus und dem internen S0-Bus erstelle, funktioniert es.

Will ich hingegen über den externen S0-Bus zwei Gespräche miteinander verbinden, gelingt es nicht. Hier der genaue Ablauf (echte Nummern ersetzt):

callfile.call:
Code:
Channel: CAPI/ISDN1/123456:0123456789
Context: capidialtone4
Extension: s
SetVar: CALLERIDNUM=123456
MaxRetries: 1
RetryTime: 10

extensions.conf:
Code:
...
[capidialtone4]                                                            
exten => s,1,Wait(2)
exten => s,n,Dial(CAPI/ISDN1/123456:0987654321)
exten => s,n,Wait(5)                                                            
...


Folgendes erscheint auf der Asterisk-Console (verbose 3):
Code:
    -- Executing Dial("CAPI/ISDN1/0123456789-8", "CAPI/ISDN1/123456:0123456789") in new stack
    -- Called ISDN1/123456:0123456789

Dieser Anruf wird ordnungsgemäß zugestellt. Danach passiert folgendes:

Code:
    -- CAPI/ISDN1/0987654321-9 is proceeding passing it to CAPI/ISDN1/0123456789-8
    -- CAPI/ISDN1/0987654321-9 is ringing


Obwohl das Ziel nicht klingelt. Nach kurzer Zeit:

Code:
Oct 12 16:52:39 WARNING[22]: channel.c:2046 ast_indicate: Unable to handle indication 3 for 'CAPI/ISDN1/0123456789-8'


Wenn ich während dieser Zeit "capi show channels" eingebe, erscheint:

Code:
(none)*CLI> capi show channels
CAPI B-channel information:
Line-Name       NTmode state i/o bproto isdnstate   ton  number
----------------------------------------------------------------
ISDN3            yes   -----  -  voice              0x00 ''->''
ISDN3            yes   -----  -  voice              0x00 ''->''
ISDN2            yes   Disc   -  voice              0x00 ''->''
ISDN2            yes   -----  -  voice              0x00 ''->''
ISDN1            no    Conn   O  voice  *BPS        0x00 '123456'->'0123456789'
ISDN1            no    Dial   O  voice  *S          0x00 '123456'->'0987654321'



Hat jemand eine Idee?
Danke
boardschauer
 
Zuletzt bearbeitet:
jetzt geht es doch!

Hallo.

Ich habe gerade die beiden Rufnummern getauscht und dabei festgestellt, dass die Nummer aus der extensions.conf nicht erreicht wird.

Das Callback funktioniert also!

@spblinux: Danke nochmal für Deinen Tipp wg. der chroot-Umgebung.
 
Danke, das Problem habe ich erstmal hinten angestellt.

Ich bin gerade dabei, den Asterisk mit Callback zu erweitern.
Dazu habe ich dieses als Vorlage benutzt:
http://www.ip-phone-forum.de/showpost.php?p=428085&postcount=1
leider bekomme ich die Meldung:
-- AGI Script callback.agi completed, returning 0
-- Executing Hangup ... in new stack
callback.agi schrieb:
cp $callfile /var/spool/asterisk/outgoing
dieses Verzeichnis gibt es bei mir leider nicht.
Welches Verzeichnis muß ich angeben, damit das callfile richtig plaziert wird?


inzwischen habe ich eine einfachere Callbacklösung probiert:
extensions.conf schrieb:
exten => 1234567/01761234567,1,Wait(1)
exten => 1234567/01761234567,2,System(cp /var/media/ftp/USBFlashMemory-Partition-0-1/callfile /var/spool/asterisk/outgoing/)
exten => 1234567/01761234567,3,Wait(1)
exten => 1234567/01761234567,4,Hangup
[dialout]
;Rückruf auf Handy ist erfolgt und landet hier
exten => _.,1,Answer
exten => _.,2,Wait(15)
exten => _.,3,DISA,no-password|dialout_now
exten => _.,4,Hangup
exten => _.,102,Busy
exten => h,1,Hangup
[dialout_now]
;Zur Rauswahl benutzen wir jetzt hier im Beispiel eine zweite sipgate line:
exten => _.,1,Dial(SIP/${EXTEN}@provider,60,tr)
exten => _.,2,Congestion
exten => _.,102,Busy
exten => h,1,Hangup

Mein callfile sieht so aus:
Channel: CAPI/ISDNA/21:01761234567
Callerid: 21
Context: dialout
Extension: 1
MaxRetries: 3
Retrytime: 30
WaitTime: 30
Priority: 1

Leider komme ich noch nicht mal dazu, mein callfile auszuprobieren, weil schon der Befehl nicht klappt:
System(cp /var/media/ftp/USBFlashMemory-Partition-0-1/callfile /var/spool/asterisk/outgoing/)
Kann es sein, dass ich dafür noch ein extra Modul geladen geladen werden muß?
Ausgabe in Asterisk:
-- Executing System("SIP/12.34.56.78-100c57b8", "cp /var/media/ftp/USBFlashMemory-Partition-0-1/callfile /var/spool/asterisk/outgoing/") in new stack

---Hinzugefügt---
Jetzt habe ich es hinbekommen mit:
exten => 1234567/01761234567,2,system,chroot /oldroot cp /var/media/ftp/USBFlashMemory-Partition-0-1/callfile /var/spool/asterisk/outgoing/
und brauche nur noch das richtige outgoing-Verzeichnis.
 
Zuletzt bearbeitet:
callback Beispiel und Update

Code:
cd /var
wget http://spblinux.de/fbox[b].new[/b]/cfg_asterisk
ist der fritzbox-asterisk in der Version 1.2.16; neu dabei ist ausserdem ein callback Beispiel (Details); zudem ist pbx_spool.so ab jetzt im asterisk.sqf enthalten.

Weiterhin sind alle in asterisk.sqf enthaltenen Programme ohne largefile support (lfs) kompiliert, da es avm firmware Versionen ohne lfs gibt (Fehler stat64 not found o.ä.)

spblinux
 
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.