Asterisk per Freetz Webinterface starten / stoppen???

mastertester

Mitglied
Mitglied seit
26 Sep 2004
Beiträge
498
Punkte für Reaktionen
0
Punkte
0
Ich würde gerne wenn es möglich ist, ein Start / Stop Skript ins Freetz Webinterface einbauen, um den Asterisk per Webinterface starten, bzw. stoppen zu können.
Asterisk ist bei mir auf einem USB Stick installiert.

Wer könnte mir hierbei helfen? Habe leider schon sehr lange nichts mehr gemacht, somit wäre ich für jede Hilfe dankbar.

Gruß
mastertester
 
Zuletzt bearbeitet:
Da sich leider bis heute keiner auf meine Anfrage gemeldet hat, hier nochmals die Frage, könnte da nicht jemand mal was basteln, um Änderungen, und das Starten/Stoppen des Asterisk per Webinterface zu realisieren?

Für die Experten hier im Forum dürfte das doch kein großes Problem sein, und ich bin bestimmt nicht der einzige der sich das wünschen würde.

Wäre ein tolles "Weihnachtsgeschenk"!

PS: Schöne würde ich es auch finden, wenn man den Astersik so auf den USB-Stick bringen würde, dass man nicht bei jedem Neustart was nachladen muss.

Ich kann eigentlich garnicht glauben, dass es der Asterisk bis heute nicht als Paket in den freetz Mod geschafft hat...

Gruß mastertester
 
Starten/Stoppen des Asterisk per Webinterface zu realisieren?
Dafür braucht es eine Datei /etc/init.d/rc.asterisk und eine Zeile 'asterisk' in der Datei /etc/static.pkg.

Schöne würde ich es auch finden, wenn man den Astersik so auf den USB-Stick bringen würde, dass man nicht bei jedem Neustart was nachladen muss.
Wieso mußt Du auf den USB-Stick etwas nachladen? Verliert der auch beim Neustart seinen Inhalt?
Ich kann eigentlich garnicht glauben, dass es der Asterisk bis heute nicht als Paket in den freetz Mod geschafft hat...
Dann mal ab ans Werk.
 
So, Kinder, dem Papa war's a bissl langweilig, außerdem wollte er schon immer wissen, was dieser asterisk für ein Monster ist, daher hat er sich ans Cross-Compilieren von diesem ran gemacht und ist nach paar Stunden auch fertig geworden. Er hat es zwar noch nicht auf der Box ausprobiert, aber Bauen läuft schon mal durch... Jetzt braucht er ein wenig Hilfe von einem, der sich mit der Materie auskennt, denn er hat wirklich Null Ahnung davon...

  1. Welche Verzeichnisstruktur braucht das Monster? Wie könnte freetz diese am besten zur Verfügung stellen?
  2. Reicht für config-Dateien usw. flash aus oder muss man Sachen auf usbstick auslagern? Wenn ja welche?
  3. Welche Module werden eigentlich gebraucht, der Papa hat sich das meiste hier abgeguckt ohne es wirklich zu verstehen (momentan werden 29 von den 164 gebauten installiert).
  4. Welche Binaries außer /usr/sbin/asterisk werden gebraucht?
  5. Es wird irgendein Webinterface mitgeliefert, kann dieses zum Konfigurieren vom Monster verwendet werden? Oder soll ein freetz-WebIf entwickelt werden? Kann man die Aufgaben auf die beiden sinnvoll aufteilen? Kann man überhaupt ein WebIf zum Konfigurieren mit dem im Rahmen bleibenden Aufwand schreiben?

Patch gegen trunk anbei, erwartet nicht viel, es ist wirklich nur das Bauen, kein init-Skript, kein nix.. Es ist aber ein Anfang :)
 

Anhänge

  • asterisk-20091219-1.patch.txt
    16.7 KB · Aufrufe: 132
  • asterisk-1.6.2.2__chan_capi-1.1.4__20100206.patch.txt
    24.9 KB · Aufrufe: 61
Zuletzt bearbeitet:
Ähm...ist der patch für freetz 1.1.2 oder für 1.2? Wie wird er angewendet?
Der Patch ist für den Trunk (svn co http://svn.freetz.org/trunk freetz-trunk)
 
Zuletzt bearbeitet:
Patches runterladen und ins Verzeichnis freetz-trunk packen. Dann "patch -p0 < asterisk-20091219-1.patch.txt". Im menuconfig testing->asterisk aktivieren und nochmal "make".

MfG Oliver
 
@PsychoMantis: patch ist gegen trunk, Du hast ihn auf 1.1.2 angewandt
 
Wie Du hoffentlich selbst erkennen kannst,hat Dein Fehler rein gar nichts mit asterisk zu tun (also streng genommen fehl am Platz in diesem Thread). Wenn Du vorm Fragen die SuFu bemühen würdest, dann würdest auch schnell auf diesen Thread stoßen. Dein libtool ist zu alt (bitte google ein wenig bevor Du fragst, wie date ich dieses up)...

Edit: und bevor die Fragen kommen, nach dem Update make popt-dirclean und rm make/config.cache aufrufen
 
Zuletzt bearbeitet:
Ich habe deinen Hinweis gelesen dass du Hilfe brauchen könntest, ich habe evtl. in 2 Wochen etwas Zeit dafür über und würde gerne helfen. Ich habe Asterisk auf einem vServer und meiner FBF benutzt. Das GUI dafür hatte ich aus dem offiziellem Trunk genommen, es funktioniert aber nicht richtig in der FBF-Version, hat immer tausende Leerzeilen eingefügt bei jedem Bearbeiten was zu riesigen Dateien führte. Bei mir ist Asterisk auch immmer ohne erkennbaren Grund abgestürzt weswegen ich es auch nicht mehr auf der Box weiter betrieben habe.
Ich denke wenn es nicht zu zeitintensiv sein soll müsste man das vorhandene GUI nehmen, es spart einem sehr viel Zeit wenn man öfters mal was ändert.
 
@PsychoMantis: das mit dem read-only filesystem weiß ich, etwas besseres als alles per external auszulagern ist mir bisher nicht eingefallen (so teste ich es). Es wäre nett, wenn Du die Liste aller Verzeichnisse erstellen könntest, in die zur Laufzeit etwas geschrieben wird, und auch die Liste aller Dateien/Verzeichnisse, die editierbar sein sollen.

p.s. bin ab Di. auf Dienstreise, komme frühestens am WE dazu, es weiter zu entwickeln...
 
@ er13
Danke. Ich konnte freetz nun fertig bauen.
Schlecht, dass die configs in /etc/asterisk/ wegen dem read-only-filesystem nicht bearbeitet werden können.
Also habe ich für den Test den gesamten Ordner /etc/asterisk nach /var/mod/root kopiert, und in der asterisk.conf die ersten zwei Zeilen editiert
Code:
vorher: 
[directories](!) ; remove the (!) to enable this
astetcdir => /etc/asterisk
nachher: 
[directories]
astetcdir => /var/mod/root/asterisk
Ergebnis: :)
Code:
/var/mod/root/asterisk # asterisk -cvvC /var/mod/root/asterisk/asterisk.conf
Asterisk 1.6.2.2, Copyright (C) 1999 - 2009 Digium, Inc. and others.
Created by Mark Spencer <[email protected]>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
  == Parsing '/var/mod/root/asterisk/asterisk.conf':   == Found
*CLI>   == Parsing '/var/mod/root/asterisk/logger.conf':   == Found
 Asterisk Event Logger Started /var/log/asterisk/event_log
 Asterisk Dynamic Loader Starting:
  == Parsing '/var/mod/root/asterisk/modules.conf':   == Found
  == Manager registered action Ping
  == Manager registered action Events
  == Manager registered action Logoff
  == Manager registered action Login
  == Manager registered action Challenge
  == Manager registered action Hangup
  == Manager registered action Status
  == Manager registered action Setvar
  == Manager registered action Getvar
  == Manager registered action GetConfig
  == Manager registered action GetConfigJSON
  == Manager registered action UpdateConfig
  == Manager registered action CreateConfig
  == Manager registered action ListCategories
  == Manager registered action Redirect
  == Manager registered action Atxfer
  == Manager registered action Originate
  == Manager registered action Command
  == Manager registered action ExtensionState
  == Manager registered action AbsoluteTimeout
  == Manager registered action MailboxStatus
  == Manager registered action MailboxCount
  == Manager registered action ListCommands
  == Manager registered action SendText
  == Manager registered action UserEvent
  == Manager registered action WaitEvent
  == Manager registered action CoreSettings
  == Manager registered action CoreStatus
  == Manager registered action Reload
  == Manager registered action CoreShowChannels
  == Manager registered action ModuleLoad
  == Manager registered action ModuleCheck
  == Parsing '/var/mod/root/asterisk/manager.conf':   == Found
  == Parsing '/var/mod/root/asterisk/cdr.conf':   == Found
[Feb  7 18:59:09] NOTICE[5487]: cdr.c:1473 do_reload: CDR simple logging enabled.
  == Parsing '/var/mod/root/asterisk/rtp.conf':   == Found
  == RTP Allocating from port range 10000 -> 20000
 Asterisk PBX Core Initializing
 Registering builtin applications:
  == Registered custom function 'EXCEPTION'
 [Answer]
  == Registered application 'Answer'
 [BackGround]
  == Registered application 'BackGround'
 [Busy]
  == Registered application 'Busy'
 [Congestion]
  == Registered application 'Congestion'
 [ExecIfTime]
  == Registered application 'ExecIfTime'
 [Goto]
  == Registered application 'Goto'
 [GotoIf]
  == Registered application 'GotoIf'
 [GotoIfTime]
  == Registered application 'GotoIfTime'
 [ImportVar]
  == Registered application 'ImportVar'
 [Hangup]
  == Registered application 'Hangup'
 [Incomplete]
  == Registered application 'Incomplete'
 [NoOp]
  == Registered application 'NoOp'
 [Proceeding]
  == Registered application 'Proceeding'
 [Progress]
  == Registered application 'Progress'
 [RaiseException]
  == Registered application 'RaiseException'
 [ResetCDR]
  == Registered application 'ResetCDR'
 [Ringing]
  == Registered application 'Ringing'
 [SayAlpha]
  == Registered application 'SayAlpha'
 [SayDigits]
  == Registered application 'SayDigits'
 [SayNumber]
  == Registered application 'SayNumber'
 [SayPhonetic]
  == Registered application 'SayPhonetic'
 [Set]
  == Registered application 'Set'
 [MSet]
  == Registered application 'MSet'
 [SetAMAFlags]
  == Registered application 'SetAMAFlags'
 [Wait]
  == Registered application 'Wait'
 [WaitExten]
  == Registered application 'WaitExten'
  == Manager registered action ShowDialPlan
  == Parsing '/var/mod/root/asterisk/indications.conf':   == Found
  == Registered application 'Bridge'
  == Parsing '/var/mod/root/asterisk/features.conf':   == Found
  == Registered application 'ParkedCall'
  == Registered application 'Park'
  == Manager registered action ParkedCalls
  == Manager registered action Park
  == Manager registered action Bridge
[Feb  7 18:59:09] WARNING[5487]: db.c:57 dbinit: Unable to open Asterisk database '/usr/lib/asterisk/astdb': Read-only file system
  == Manager registered action DBGet
  == Manager registered action DBPut
  == Manager registered action DBDel
  == Manager registered action DBDelTree
 Asterisk Dynamic Loader Starting:
  == Parsing '/var/mod/root/asterisk/modules.conf':   == Found
[Feb  7 18:59:09] NOTICE[5487]: loader.c:1044 load_modules: 30 modules will be loaded.
  == Registered file format g729, extension(s) g729
 format_g729.so => (Raw G729 data)
  == Registered file format gsm, extension(s) gsm
 format_gsm.so => (Raw GSM data)
  == Registered file format pcm, extension(s) pcm|ulaw|ul|mu|ulw
  == Registered file format alaw, extension(s) alaw|al|alw
  == Registered file format au, extension(s) au
  == Registered file format g722, extension(s) g722
 format_pcm.so => (Raw/Sun uLaw/ALaw 8KHz (PCM,PCMA,AU), G.722 16Khz)
  == Registered file format wav, extension(s) wav
 format_wav.so => (Microsoft WAV format (8000Hz Signed Linear))
  == Registered file format wav49, extension(s) WAV|wav49
 format_wav_gsm.so => (Microsoft WAV format (Proprietary GSM))
  == Registered custom function 'CDR'
 func_cdr.so => (Call Detail Record (CDR) dialplan function)
  == Registered custom function 'CALLERPRES'
  == Registered custom function 'CALLERID'
 func_callerid.so => (Caller ID related dialplan functions)
  == Parsing '/var/mod/root/asterisk/cdr_manager.conf':   == Found
 cdr_manager.so => (Asterisk Manager Interface CDR Backend)
  == Parsing '/var/mod/root/asterisk/musiconhold.conf':   == Found
[Feb  7 18:59:09] WARNING[5487]: res_musiconhold.c:975 moh_scan_files: Cannot open dir /usr/lib/asterisk/moh or dir does not exist
[Feb  7 18:59:09] WARNING[5487]: res_musiconhold.c:1780 load_module: No music on hold classes configured, disabling music on hold.
  == Registered application 'MusicOnHold'
  == Registered application 'WaitMusicOnHold'
  == Registered application 'SetMusicOnHold'
  == Registered application 'StartMusicOnHold'
  == Registered application 'StopMusicOnHold'
 res_musiconhold.so => (Music On Hold Resource)
  == Parsing '/var/mod/root/asterisk/cdr_custom.conf':   == Found
[Feb  7 18:59:09] WARNING[5487]: config.c:1111 process_text_line: parse error: No category context for line 10 of /var/mod/root/asterisk/cdr_custom.conf
[Feb  7 18:59:09] ERROR[5487]: cdr_custom.c:71 load_config: Invalid config file
  == Registered application 'ForkCDR'
 app_forkcdr.so => (Fork The CDR into 2 separate entities)
  == Parsing '/var/mod/root/asterisk/cdr.conf':   == Found
 cdr_csv.so => (Comma Separated Values CDR Backend)
  == Registered translator 'ulawtolin' from format ulaw to slin, cost 1
  == Registered translator 'lintoulaw' from format slin to ulaw, cost 1
 codec_ulaw.so => (mu-Law Coder/Decoder)
  == Registered translator 'gsmtolin' from format gsm to slin, cost 1
  == Registered translator 'lintogsm' from format slin to gsm, cost 20000
 codec_gsm.so => (GSM Coder/Decoder)
SIP channel loading...
  == Parsing '/var/mod/root/asterisk/sip.conf':   == Found
[Feb  7 18:59:10] WARNING[5487]: chan_sip.c:25034 reload_config: Failed to bind to 0.0.0.0:5060: Address already in use
  == Parsing '/var/mod/root/asterisk/sip_notify.conf':   == Found
  == Registered channel type 'SIP' (Session Initiation Protocol (SIP))
  == Registered application 'SIPDtmfMode'
  == Registered application 'SIPAddHeader'
  == Registered application 'SIPRemoveHeader'
  == Registered custom function 'SIP_HEADER'
  == Registered custom function 'SIPPEER'
  == Registered custom function 'SIPCHANINFO'
  == Registered custom function 'CHECKSIPDOMAIN'
  == Manager registered action SIPpeers
  == Manager registered action SIPshowpeer
  == Manager registered action SIPqualifypeer
  == Manager registered action SIPshowregistry
  == Manager registered action SIPnotify
 chan_sip.so => (Session Initiation Protocol (SIP))
  == Registered channel type 'Local' (Local Proxy Channel Driver)
 chan_local.so => (Local Proxy Channel (Note: used internally by other modules))
  == Registered custom function 'IAXPEER'
  == Registered custom function 'IAXVAR'
  == Registered application 'IAX2Provision'
  == Manager registered action IAXpeers
  == Manager registered action IAXpeerlist
  == Manager registered action IAXnetstats
  == Manager registered action IAXregistry
  == Parsing '/var/mod/root/asterisk/iax.conf':   == Found
  == Binding IAX2 to default address 0.0.0.0:4569
[Feb  7 18:59:10] WARNING[5487]: utils.c:1536 __ast_string_field_init: trying to reset empty pool
[Feb  7 18:59:10] WARNING[5487]: utils.c:1536 __ast_string_field_init: trying to reset empty pool
[Feb  7 18:59:10] WARNING[5487]: utils.c:1536 __ast_string_field_init: trying to reset empty pool
  == Registered channel type 'IAX2' (Inter Asterisk eXchange Driver (Ver 2))
  == 10 helper threads started
  == IAX Ready and Listening
[Feb  7 18:59:10] WARNING[5487]: chan_iax2.c:3080 reload_firmware: Error opening firmware directory '/usr/lib/asterisk/firmware/iax': No such file or directory
  == Parsing '/var/mod/root/asterisk/iaxprov.conf':   == Found
[Feb  7 18:59:10] WARNING[5487]: db.c:57 dbinit: Unable to open Asterisk database '/usr/lib/asterisk/astdb': Read-only file system
 chan_iax2.so => (Inter Asterisk eXchange (Ver 2))
  == Parsing '/var/mod/root/asterisk/capi.conf':   == Found
[Feb  7 18:59:10] NOTICE[5487]: chan_capi.c:7977 cc_post_init_capi: Unused contr2
[Feb  7 18:59:10] NOTICE[5487]: chan_capi.c:7977 cc_post_init_capi: Unused contr3
[Feb  7 18:59:10] NOTICE[5487]: chan_capi.c:7977 cc_post_init_capi: Unused contr4
[Feb  7 18:59:10] NOTICE[5487]: chan_capi.c:7977 cc_post_init_capi: Unused contr5
  == Registered channel type 'CAPI' (Common ISDN API Driver (1.1.4))
  == Registered application 'capicommand'
[Feb  7 18:59:10] NOTICE[5508]: chan_capi.c:7047 capidev_loop: Started CAPI device thread for CAPI Appl-ID 7.
 chan_capi.so => (Common ISDN API Driver (1.1.4))
  == Parsing '/var/mod/root/asterisk/cdr_sqlite3_custom.conf':   == Found
 cdr_sqlite3_custom.so => (SQLite3 Custom CDR Module)
  == Registered application 'MacroExit'
  == Registered application 'MacroIf'
  == Registered application 'MacroExclusive'
  == Registered application 'Macro'
 app_macro.so => (Extension Macros)
 res_adsi.so => (ADSI Resource)
  == Registered application 'NoCDR'
 app_cdr.so => (Tell Asterisk to not maintain a CDR for the current call)
  == Parsing '/var/mod/root/asterisk/voicemail.conf':   == Found
  == Registered application 'VoiceMail'
  == Registered application 'VoiceMailMain'
  == Registered application 'MailboxExists'
  == Registered application 'VMAuthenticate'
  == Registered custom function 'MAILBOX_EXISTS'
  == Manager registered action VoicemailUsersList
 app_voicemail.so => (Comedian Mail (Voicemail System))
  == Registered application 'TrySystem'
  == Registered application 'System'
 app_system.so => (Generic System() application)
  == Registered application 'Playback'
 app_playback.so => (Sound File Playback Application)
  == Registered application 'Dial'
  == Registered application 'RetryDial'
 app_dial.so => (Dialing Application)
  == Parsing '/var/mod/root/asterisk/extensions.conf':   == Found
  == Setting global variable 'CONSOLE' to 'Console/dsp'
  == Setting global variable 'IAXINFO' to 'guest'
  == Setting global variable 'TRUNK' to 'DAHDI/G2'
  == Setting global variable 'TRUNKMSD' to '1'
 pbx_config.so => (Text Extension Configuration)
  == Registered application 'Echo'
 app_echo.so => (Simple Echo Application)
  == Registered custom function 'FIELDQTY'
  == Registered custom function 'FILTER'
  == Registered custom function 'LISTFILTER'
  == Registered custom function 'REGEX'
  == Registered custom function 'ARRAY'
  == Registered custom function 'QUOTE'
  == Registered custom function 'CSV_QUOTE'
  == Registered custom function 'LEN'
  == Registered custom function 'STRFTIME'
  == Registered custom function 'STRPTIME'
  == Registered custom function 'EVAL'
  == Registered custom function 'KEYPADHASH'
  == Registered custom function 'HASHKEYS'
  == Registered custom function 'HASH'
  == Registered application 'ClearHash'
  == Registered custom function 'TOUPPER'
  == Registered custom function 'TOLOWER'
 func_strings.so => (String handling dialplan functions)
  == Registered custom function 'TIMEOUT'
 func_timeout.so => (Channel timeout dialplan functions)
Asterisk Ready.

*CLI>
*CLI>
*CLI> sip show peers
Name/username              Host            Dyn Nat ACL Port     Status
0 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 0 offline]
*CLI> core show channels
Channel              Location             State   Application(Data)
0 active channels
0 active calls
0 calls processed
*CLI> core show translation
         Translation times between formats (in microseconds) for one second of data
          Source Format (Rows) Destination Format (Columns)

           g723   gsm  ulaw  alaw g726aal2 adpcm  slin lpc10  g729 speex  ilbc  g726  g722 siren7 siren14 slin16
     g723     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
      gsm     -     - 10001     -        -     - 10000     -     -     -     -     -     -      -       -      -
     ulaw     - 20001     -     -        -     -     1     -     -     -     -     -     -      -       -      -
     alaw     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
 g726aal2     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
    adpcm     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
     slin     - 20000     1     -        -     -     -     -     -     -     -     -     -      -       -      -
    lpc10     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
     g729     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
    speex     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
     ilbc     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
     g726     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
     g722     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
   siren7     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
  siren14     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
   slin16     -     -     -     -        -     -     -     -     -     -     -     -     -      -       -      -
*CLI>
Das war vor paar Tagen...


Ich meine, du solltest noch folgende Module hinzufügen:
Code:
pbx_spool.so
app_exec.so
app_mp3.so
app_disa.so
app_confbridge.so
res_clialiases.so
app_chanspy.so
app_transfer.so
func_db.so
func_math.so
func_logic.so
func_global.so
res_agi.so
codec_a_mu.so
codec_alaw.so
codec_g726.so
format_g726.so
format_ilbc.so
codec_ilbc.so //Davor muss aber contrib/scripts/get_ilbcsource ausgeführt werden und das im asterisk-menuconfig aktiviert werden
app_authenticate.so
func_cut.so
app_playtones.so

Wie die ganzen anderen Daten aussehen sollten und wo sie liegen sollten gäbe es mehrere Möglichkeiten. Eine Idee wäre es einfach in der asterisk.conf anzupassen.
Dann müsste man bloß im /mod/root/ den Ordner asterisk anlegen in dem man wiederrum "modules" und "configs" anlegt. Das kann ein startup-Script machen, welches eh Asterisk startet. In die beiden neu erstellten Ordner schmeißt man einfach die symbolischen Links aus den ursprünglichen Ordnern rein. Wem dann was nicht passt, kann neue Module hinzufügen oder andere configs ablegen.

Ich habe schnell einen kurzer Startup-Script geschrieben (einfach das kopieren und per ssh eingeben):
Code:
mkdir /mod/root/asterisk && mkdir /mod/root/asterisk/modules && mkdir /mod/root/asterisk/configs
mkdir /mod/root/asterisk/firmware && mkdir /mod/root/asterisk/firmware/iax
mkdir /mod/root/asterisk/cdr-csv && mkdir /var/run/asterisk && mkdir /mod/root/asterisk/moh
ln -s /etc/asterisk/* /mod/root/asterisk/configs/
ln -s /usr/lib/asterisk/modules/* /mod/root/asterisk/modules/
rm /mod/root/asterisk/configs/asterisk.conf
wget -O /mod/root/asterisk/configs/asterisk.conf http://home.arcor.de/psychomantis/fritzbox/asterisk.conf
wget -O /mod/root/asterisk/configs/indications.conf http://home.arcor.de/psychomantis/fritzbox/indications.conf
wget -O /mod/root/asterisk/configs/datacard.conf http://home.arcor.de/psychomantis/fritzbox/datacard.conf
wget -O /mod/root/asterisk/modules/chan_datacard.so http://home.arcor.de/psychomantis/fritzbox/chan_datacard.so
chmod +x /mod/root/asterisk/modules/chan_datacard.so
asterisk -C /mod/root/asterisk/configs/asterisk.conf
asterisk -r
 
Zuletzt bearbeitet:
[HOWTO]: Asterisk ins freetz integrieren und UMTS-Stick als GSM-Gateway verwenden

Was hier als Idee angefangen hat, konnte ich mit freetz bei mir realisieren. So bin ich vorgegangen:
Als erstes im vmware-player Debian von der netinst-cd installiert und das gemacht (vermutlich würde es aber auch mit dem Ubuntu-Image aus diesem Thread gehen):
Code:
sudo apt-get -y install subversion gcc g++ binutils autoconf automake automake1.9 libtool make bzip2 libncurses5-dev zlib1g-dev flex bison patch texinfo tofrodos gettext jam pkg-config jikes ecj fastjar realpath perl libstring-crc32-perl ruby ruby1.8 gawk python libusb-dev unzip intltool
cd /usr/src
wget http://ftp.gnu.org/gnu/libtool/libtool-2.2.6b.tar.gz
tar xzf libtool-2.2.6b.tar.gz
cd /usr/src/libtool-2.2.6b
./configure
make && make install
cd /usr/src
svn co http://svn.freetz.org/trunk freetz
cd /usr/src/freetz
# Den Patch jetzt hier rein tun
patch -p0 < asterisk-1.6.2.2__chan_capi-1.1.4__20100206.patch.txt
Dann im "make menuconfig" Asterisk ausgewählt, als toolchain "eigene bauen" und mit "make" den buildprozess gestartet. Wenn freetz dann gebaut wird, kann man irgendwann sehen, dass Asterisk entpackt wird, und "./configure" gemacht wird. An der Stelle habe ich mit CTRG+C den buildprozess abgebrochen. Da ich im freetz-Image bestimmte Module des Asterisks haben wollte, habe ich vorher am Anfang in der /usr/src/freetz/make/asterisk/asterisk.mk (da wo z.B. "app_dial", "app_playback" usw stehen) diese (also auch "chan_datacard") eingetragen. Die Rev.37 von chan_datacard.c (auch hier angehängt) habe ich dann in den Ordner /usr/src/freetz/source/asterisk-1.6.2.2/channels reingeschmissen und mit "make" wieder den buildprozess begonnen.
Am Ende hatte ich ein funktionierendes freetz-image mit (fast) funktionierendem Asterisk.
Damit Asterisk funktioniert, habe ich mich in meine 7270erV3 eingeloggt und folgendes ausgeführt:
Code:
cd /mod/root/
wget http://home.arcor.de/psychomantis/fritzbox/astconfigs.tgz
tar xzf astconfigs.tgz
mkdir /var/run/asterisk
killall umtsd
asterisk -C /mod/root/asterisk/configs/asterisk.conf
Mit "ps" kann man nun sehen, dass Asterisk wirklich läuft und mit "asterisk -r" verbindet man sich bekanntlich mit der Asterisk-CLI. Wenn man "datacard show devices" eingibt, und das sieht, dann funzt die Sache mit dem UMTS-Stick (es funzt bei mir mit K3520 - mit anderen habe ich es nicht probiert):
Code:
fritz*CLI> datacard show devices
ID              Group  Connected State Voice SMS   RSSI  Mode  Submode Provider Name   Manufacturer Model      Firmware          IMEI
datacard        1      Yes       Free  Yes   Yes   0     0     0       Vodafone.de     huawei       K3520      11.314.21.31.00   3534xxxxxxxxxxxx
fritz*CLI>
In der FBF habe ich dann unter Internettelefonie einen neuen Provider "30" eingerichtet mit "geheim" als Passwort und "localhost:5061" als Server. So funzt das bei mir mit Asterisk und dem GSM-Gateway. Um darüber zu telefonieren einfach im an der FBF angeschlossenem Telefon die Handynummer wählen.

Ich würde zu gerne wissen, ob es auch bei euch funktioniert und nicht nur bei mir und ob auch bei euch die Quali so gut ist wie bei mir, aber blöderweise darf ich mein freetz-Image ja nicht rein stellen...
 

Anhänge

  • astconfigs.tgz
    2.7 KB · Aufrufe: 54
  • chan_datacard.tgz
    28.7 KB · Aufrufe: 55
Zuletzt bearbeitet:
[...]
An der Stelle habe ich mit CTRG+C den buildprozess abgebrochen. Da ich im freetz-Image bestimmte Module des Asterisks haben wollte, habe ich vorher am Anfang in der /usr/src/freetz/make/asterisk/asterisk.mk (da wo z.B. "app_dial", "app_playback" usw stehen) diese (also auch "chan_datacard") eingetragen. Die Rev.37 von chan_datacard.c (auch hier angehängt) habe ich dann in den Ordner /usr/src/freetz/source/asterisk-1.6.2.2/channels reingeschmissen und mit "make" wieder den buildprozess begonnen.
[...]
Wenn man das Ändern der Datei "asterisk.mk" und das Kopieren der Datei "chan_datacard.c" vermeiden will, bzw. den buildprozess nicht unterbrechen will, dann kann man den Patch aus dem Anhang verwenden:
 

Anhänge

  • asterisk-1.6.2.2__chan_datacard_rev37__20100212.patch.txt
    149 KB · Aufrufe: 73
Nicht schlecht, nicht schlecht. Danke für den Patch.
Ich habe leider keine Ahnung in so was.
Ich habe gerade ein freetz-Image erstellt, wo der Asterisk automatisch neugestartet wird, wenn z.B. Stromausfall war. So bin ich vorgegangen:
Ich habe die Datei /usr/src/freetz/build/original/filesystem/etc/hotplug/usbgsm in einen beliebigen Ordner kopiert und etwas geändert. Vorher (der entscheidende Teil):
Code:
...
## let the modem time to boot
sleep 5
umtsd
fi
else
echo "0" > $HANDLE
sleep 3
fi
...
Nachher:
Code:
...
## let the modem time to boot
sleep 5
mkdir /var/mod/root/asterisk
mkdir /var/run/asterisk
mkdir /var/mod/root/asterisk/configs
mkdir /var/mod/root/asterisk/agi-bin
mkdir /var/mod/root/asterisk/cdr-csv
mkdir /var/mod/root/asterisk/firmware
mkdir /var/mod/root/asterisk/firmware/iax
mkdir /var/mod/root/asterisk/modules
mkdir /var/mod/root/asterisk/moh
mkdir /var/mod/root/asterisk/sounds
ln -s /usr/lib/asterisk/modules/* /var/mod/root/asterisk/modules/
cp /etc/asterisk/sip.conf /var/mod/root/asterisk/configs
cp /etc/asterisk/extensions.conf /var/mod/root/asterisk/configs
ln -s /etc/asterisk/* /var/mod/root/asterisk/configs/
/usr/sbin/asterisk -C /mod/root/asterisk/configs/asterisk.conf
fi
else
echo "0" > $HANDLE
sleep 3
fi...

Um die Datei nun statt der ursprünglichen usbgsm im Image drin zu haben, habe ich einfach einen kleinen Script geschrieben, der diese neue usbgsm alle halbe Sekunde versucht ins /usr/src/freetz/build/modified/filesystem/etc/hotplug zu kopieren. Ach ja, die asterisk-Konfigurationsdateien ersetze ich nebenbei auch durch eigene (hier im Anhang - entscheidend ist die asterisk.conf)
Code:
while :; do
cp /usr/src/test/usbgsm /usr/src/freetz/build/modified/filesystem/etc/hotplug/
cp /usr/src/test/*.conf /usr/src/freetz/build/modified/filesystem/etc/asterisk/
sleep 0.5 ; done
Den Script habe ich dann im Hintergrund laufen lassen und freetz ganz normal mit "make" gebaut.

Ich kann meine 7270er nun ein- und ausschalten so viel ich will. Asterisk wird nach einem Reboot automatisch gestartet und ich kann mich ganz normal in die FBF per ssh einloggen und mich mit "asterisk -r" mit der Asterisk-CLI verbinden.

Jetzt müsste man das alles auch noch irgendwie in den patch hineinbekommen. Aber irgendwo in der freetz-Webif oder im "make menuconfig" bräuchte man noch die Möglichkeit auszuwählen, ob ein eventuell vorhandener UMTS-Stick als GSM-Gateway oder UMTS-Modem eingesetzt wird.

Ach ja, und noch ein Problem gibt es: Wenn ich jetzt z.B. meine sip.conf ändere, sind die Änderungen nach einem Neustart der FBF natürlich weg. Ich habe gesehen, dass jffs2 irgendwie gehen müsste. Wenn man es schafft, dass die Änderungen der Asterisk-Konfigurationsdateien und Asterisk-Logs einen Neustart der FBF überleben, bin ich der Meinung, dass Asterisk dann aus "Testing" ins "Standard Packages" verschoben werden kann.
 

Anhänge

  • configs.tgz
    2 KB · Aufrufe: 21
Zuletzt bearbeitet:
Ich habe jetzt mal versucht, nach Deiner Anleitung vorzugehen, allerdings habe ich das Freetzlinux im VMWarePlayer genommen, weil es schon auf meinem Computer war.
Leider bin ich schon an der Stelle:
, als toolchain "eigene bauen"
hängengeblieben. Ich habe aber trotzdem weitergemacht. Glücklicherweise kann man chan_datacard auch noch hier runterladen, denn http://www.makhutov.org/svn/chan_datacard/trunk/ ist momentan offline. Es gab dort auch schon seit ein paar Tagen chan_datacard REV.39. Warum wird diese nicht genommen?
Nach Deiner Anleitung habe ich alle meine Module in die asterisk.mk eingetragen, die meisten wurden auch akzeptiert. Wie schon bekannt, geht chan_capi nicht. Komischerweise wollte er auch nichts mit chan_datacard zu tun haben. Nachdem ich aber chan_datacard.so von Dir in den Ordner
...\freetz\toolchain\build\gcc-4.2.4-uClibc-0.9.29\mipsel-linux-uclibc\asterisk\usr\lib\asterisk\modules
kopiert hatte, lief alles bis zum Schluß durch. Ich hatte noch zwei weitere Pakete in Freetz einbauen wollen, damit bekam ich aber die Fehlermeldung, dass das Image zu groß ist. Übrigens sind auch meine Module alle ca. 20 % größer geworden, als die von PsychoMantis.
Immerhin hatte ich jetzt alle meine Module, die ich brauchte und habe damit die Dateien in meinem Asterisk-Verzeichnis ausgetauscht.
Asterisk startet mit einer Fehlermeldung. Asterisk -vvvvvvvvvvc startet aber, läuft auch, allerdings nicht stabil.
 
Zuletzt bearbeitet:
@PsychoMantis
Du kannst auch ohne Skript auskommen. Das Erstellen von Ordner/Verzeichnissen bzw. das Kopieren von Dateien, bzw. das Integrieren in das Freetz-Image, kann Freetz für dich machen. Nach dem Anwenden des Patches musst Du nur im Ordner ".../make/asterisk" das Verzeichnis "files" mit einigen Unterverzeichnissen (siehe unten) anlegen und dort dann deine Dateien rein kopieren. Große Dateien (z. B. module die nicht von Freetz erstellt werden) würde ich aber auf einen externen Datenträger auslagern und in den Verzeichnissen der Box lediglich symlinks auf diese externen Verzeichnisse erstellen. Evtl. erforderliche Rechte (chmod, chown) kannst Du mit der rc.custom (beim Start) erteilen. So überleben die conf-Dateien auch ein reboot.
z. B. Verzeichnisse und Unterverzeichnisse:
Code:
files / root / etc / hotplug
files / var.tar / var / mod / root / asterisk / ...
files / var.tar / var / run / asterisk
Schau dir auch im trunk an, wie die maintainer der Pakete, das bei iptraf und ngircd gelöst haben: klick und klack

BTW: Warum wird 'als toolchain "eigene bauen" ' gebraucht?
 
Ich weiß nicht, ob ich eigene toolchain bauen MUSS, ich habs einfach gemacht. Wahrscheinlich würde es auch mit der schon existierenden gehen.
Warum die Rev. 39 nicht genommen wird? Ich bin zu unwissend, um die zu kompilieren. Die rev.39 hat aber keine Vorteile gegenüber der rev.37 - die 39er kann nur besser mit sms umgehen.

Falls das Image zu groß wird, kannst du noch die sounds aus dem Packet rauskicken. Die wiegen immerhin über 1MB.
Ich habe das auch mit meinem script gemacht:
Code:
while :; do
cp /usr/src/test/usbgsm /usr/src/freetz/build/modified/filesystem/etc/hotplug/
cp /usr/src/test/*.conf /usr/src/freetz/build/modified/filesystem/etc/asterisk/
rm /usr/src/freetz/build/modified/filesystem/usr/lib/asterisk/sounds/en/*
rm -r /usr/src/freetz/build/modified/filesystem/usr/lib/asterisk/sounds/en/dictate/*
rm -r /usr/src/freetz/build/modified/filesystem/usr/lib/asterisk/sounds/en/digits/*
rm -r /usr/src/freetz/build/modified/filesystem/usr/lib/asterisk/sounds/en/followme/*
rm -r /usr/src/freetz/build/modified/filesystem/usr/lib/asterisk/sounds/en/letters/*
rm -r /usr/src/freetz/build/modified/filesystem/usr/lib/asterisk/sounds/en/phonetic/*
rm -r /usr/src/freetz/build/modified/filesystem/usr/lib/asterisk/sounds/en/silence/*
sleep 0.5 ; done

@sf3978
Mir ist schon klar, dass ich ohne solchen Script auskommen kann, aber ich bin zu faul um mich einzulesen.
 
Bei mit wird asterisk auch mit der precompiled toolchain kompiliert.
@PsychoMantis
Da gibt es nichts zum einlesen. Einfach mal ausprobieren. Das was Du mit dem Skript dir ausgedacht hast, ist viel komplizierter.;)
 
Klappt diese Methode bei dir nicht?
Da ich im freetz-Image bestimmte Module des Asterisks haben wollte, habe ich vorher am Anfang in der /usr/src/freetz/make/asterisk/asterisk.mk (da wo z.B. "app_dial", "app_playback" usw stehen) diese (also auch "chan_datacard") eingetragen.
 
Doch, habe ich auch schon hier geschrieben. Meine Module sind aber 20% zu groß und mein Asterisk läuft nicht sauber, z.B. kann ich keinen Echotest mehr machen und der Start geht nur über den Umweg Asterisk -v. Normale Telefonie geht aber.
 
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.