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

Asterisk und Oracle

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von VOIPdani, 13 Dez. 2005.

  1. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi!

    Ich hab es geschafft extension.conf und sip.conf in eine mysql-DB auszulagern, allerdings laufen Asterisk und MySQL am selben Rechner. Bitte korrigiert mich wenn ich falsch liege, doch wenn die MySQL-DB auf einem anderen Rechner im Netz laufen würde, bräuchte ich ODBC um mich verbinden zu können?!

    Kann ich mich mit unixODBC und dem File res_config_odbc.conf auch auf eine Oracle-DB verbinden und meine extensions.conf bzw. sip.conf in einer Oracle-DB speichern?

    Hat damit schon jemand Erfahrungen bzw. kann mir jemand bestätigen dass Asterisk und Oracle zusammenarbeiten?

    Lg Dani
     
  2. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo!

    Ich muss diesen Thread wieder hochholen, da ich auf die Frage ob ich sämtliche Konfigurationsfiles (sip.conf, extensions.conf) in eine Oracle-DB auslagern kann leider noch keine Antwort gefunden habe. Wenn ich das Thema google find ich in Zusammenhang mit Oracle gar nix. Die Frage is: Hat's bis jetzt noch niemand probiert oder gehts einfach nicht?

    Weiters würd mich auch noch folgendes interessieren:
    Ich hoffe die IPPF-Gemeinde kann mir da weiterhelfen!

    Lg Dani
     
  3. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    Hallo VOIPdani,

    ich habe es noch nicht probiert, aber rein theoretisch dürfe das kein Problem sein.
    Du musst nur den unixODBC treiber für Oracle installieren und die resource installieren.
    Ich verwende ODBC auch für die Anbindung an eine MySQL. Das hat für mich den Vorteil das es später leichter umgestellt werden kann.
     
  4. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi!

    Danke für die prompte Antwort!

    Folgendes Szenario: Auf einem Rechner läuft nur Asterisk+Addons; die Oracle-DB läuft auf einem anderen Rechner im Netz.

    So wie ich das verstehe brauch ich ODBC um mich auf die entfernte DB zu connecten.

    Aber angenommen die entfernte DB ist eine MySQL-DB, brauch ich da auch ODBC um mich auf die entfernte MySQL-DB zu verbinden?

    lg Dani
     
  5. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    nicht unbedingt, das addon für mysql reicht da schon;
    in der res_mysql.conf kannst du ja die IP + Port des servers angeben.
    Ich glaube der Port musste unbedingt mit angegeben werden, da sonst über die lokale socket versucht wird zu connecten.
     
  6. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    OK, das werd ich dann gleich mal ausprobieren.

    Jetzt hab ich aber noch eine Frage und zwar wie funktioniert das ganze dann mit Oracle? Da muss ich ja ODBC installieren, welches Paket genau? Ist da unixODBC-dev das richtige? Wie würden dann die config-Files aussehen? Wie sieht der Socket aus über den ich mich connecte? Oracle läuft ja auf einem Windows-Rechner...treten da sicher keine Probleme auf?!
     
  7. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    welches system hast du?
     
  8. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #8 VOIPdani, 18 Jan. 2006
    Zuletzt bearbeitet: 18 Jan. 2006
    Mein Asterisk läuft auf Suse 9.2 Professional
    Die Oracle-DB würde dann aber auf einem Windows-Server laufen
     
  9. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    nach dem oracle Treiber muss ich erst mal suchen;
    ich hänge mal meine ODBC conf für mysql an

    /etc/unixODBC/odbc.ini
    Code:
    [MySQL-asterisk]
    Description = MySQL Asterisk database
    Trace       = Off
    TraceFile   = stderr
    Driver      = MySQL
    SERVER      = 127.0.0.1
    USER        = username
    PASSWORD    = passwd
    PORT        = 3306
    DATABASE    = asterisk
    
    /etc/unixODBC/odbcinst.ini
    Code:
    [MySQL] 
    Description     = ODBC for MySQL
    Driver          = /usr/lib/unixODBC/libmyodbc3.so
    Setup           = /usr/lib/unixODBC/libodbcmyS.so
    FileUsage       = 1
    

    Code:
    ;;; odbc setup file 
    
    /etc/asterisk/res_odbc.conf
    [asterisk]
    dsn => MySQL-asterisk
    username => username
    password => passwd
    pre-connect => yes
    
    Pakete: unixODBC
     
  10. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    So, jetzt bin ich ein bissal verwirrt...ich dachte bei MySQL brauch ich kein ODBC??
     
  11. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    das war ein Bsp für die ODBC installation;
    Oracle würde dann ähnlich aussehen, nur die Pfade Setup und Driver sind anzupassen.

    für mysql geht es natürlich auch mit res_mysql.conf
     
  12. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    OK, aber wenn ich die Oracle-DB nicht am selben Rechner laufen lasse, wie passe ich dann die Pfade an???
     
  13. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    das odbc installierst du ja auf dem asterisk -> also lokal; somit brauchst du nur die treiber für Suse und oracleODBC
     
  14. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    In meinem Fall würden die Files dann ca. so aussehen?:

    Was geb ich als PORT an?
     
  15. clan

    clan Mitglied

    Registriert seit:
    21 Apr. 2005
    Beiträge:
    266
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Die odbcinst.ini dürfte falsch sein. Um ODBC mit Oracle zu benutzen musst du den Oracle-ODBC-Treiber für Linux installieren. Dazu sollte auch eine Anleitung gehören, in der beschrieben ist, wie eine ODBC-Verbindung konfiguriert wird. Die Anmeldedaten kommen dann in die res_odbc.conf
     
  16. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    das stimmt die Setup in diesem Fall ist die von mysql;
    ich schau mal nach ob ich was zu oracle finde
     
  17. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #17 VOIPdani, 1 Feb. 2006
    Zuletzt bearbeitet: 1 Feb. 2006
    Hallo chaos2000!

    Hast du dich in letzter Zeit mit der Anbindung von Asterisk an Oracle beschäftigt?

    Hast du vielleicht sogar was zum Thema gefunden?

    Ich hab mich mal auf www.unixodbc.org umgeschaut, dort gibt es zwar eine Auflistung von Treibern, aber so wie ich das verstehe ist ein Oracle-ODBC-Treiber für Linux kostenpflichtig. Außerdem haut das installieren von UnixODBC bei mir auch nicht hin.

    Code:
    testasterisk:/usr/src/packages/SOURCES/unixODBC-2.2.11 # ./configure
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking for gawk... (cached) gawk
    checking for bison... bison -y
    checking for gcc... gcc
    checking for C compiler default output file name... a.out
    checking whether the C compiler works... yes
    checking whether we are cross compiling... no
    checking for suffix of executables...
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ANSI C... none needed
    checking for style of include used by make... GNU
    checking dependency style of gcc... gcc3
    checking how to run the C preprocessor... gcc -E
    checking for flex... flex
    checking for yywrap in -lfl... yes
    checking lex output file root... lex.yy
    checking whether yytext is a pointer... yes
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether ln -s works... yes
    checking whether make sets $(MAKE)... (cached) yes
    checking for g++... no
    checking for c++... no
    checking for gpp... no
    checking for aCC... no
    checking for CC... no
    checking for cxx... no
    checking for cc++... no
    checking for cl... no
    checking for FCC... no
    checking for KCC... no
    checking for RCC... no
    checking for xlC_r... no
    checking for xlC... no
    checking whether we are using the GNU C++ compiler... no
    checking whether g++ accepts -g... no
    checking dependency style of g++... none
    checking for egrep... grep -E
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking sys/sem.h usability... yes
    checking sys/sem.h presence... yes
    checking for sys/sem.h... yes
    checking Have we enabled using RTLD_GROUP ... yes
    checking build system type... i686-pc-linux-gnu
    checking host system type... i686-pc-linux-gnu
    checking for ld used by GCC... /usr/i586-suse-linux/bin/ld
    checking if the linker (/usr/i586-suse-linux/bin/ld) is GNU ld... yes
    checking for /usr/i586-suse-linux/bin/ld option to reload object files... -r
    checking for BSD-compatible nm... /usr/bin/nm -B
    checking how to recognise dependant libraries... pass_all
    checking command to parse /usr/bin/nm -B output... ok
    checking dlfcn.h usability... yes
    checking dlfcn.h presence... yes
    checking for dlfcn.h... yes
    checking for ranlib... ranlib
    checking for strip... strip
    checking for objdir... .libs
    checking for gcc option to produce PIC... -fPIC
    checking if gcc PIC flag -fPIC works... yes
    checking if gcc static flag -static works... yes
    checking if gcc supports -c -o file.o... yes
    checking if gcc supports -c -o file.lo... yes
    checking if gcc supports -fno-rtti -fno-exceptions... no
    checking whether the linker (/usr/i586-suse-linux/bin/ld) supports shared libraries... yes
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking dynamic linker characteristics... GNU/Linux ld.so
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... no
    checking whether -lc should be explicitly linked in... no
    creating libtool
    checking if we are using the included libltdl ... yes
    checking which extension is used for shared libraries... .so
    checking for iconv... yes
    checking for iconv declaration...
             extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
    checking for encoding to use for CHAR representations ... auto-search
    checking for encoding to use for UNICODE representations ... auto-search
    checking for crypt in -lcrypt... yes
    checking for pow in -lm... yes
    checking for readline in -lreadline ... no
    checking for readline in -lreadline -lcurses ... no
    checking Are we using flex ... yes
    checking whether time.h and sys/time.h may both be included... yes
    checking sys/time.h usability... yes
    checking sys/time.h presence... yes
    checking for sys/time.h... yes
    checking for long... yes
    checking size of long... 4
    checking if platform is 64 bit... No
    checking for long long... yes
    checking for strcasecmp... yes
    checking for strncasecmp... yes
    checking for vsnprintf... yes
    checking for strtol... yes
    checking for atoll... yes
    checking for strtoll... yes
    checking for endpwent... yes
    checking for mutex_lock in -lthread ... no
    checking for pthread_mutex_lock in -lpthread... yes
    checking if compiler accepts -pthread... yes
    checking for localtime_r in -lc... yes
    checking for ftok... yes
    checking for semget... yes
    checking for shmget... yes
    checking for semop... yes
    checking for snprintf... yes
    checking for semundo union... yes
    checking for socket in -lsocket... no
    checking for gethostbyname in -lnsl... yes
    checking for X... configure: error: Can't find X includes. Please check your installation and add the correct paths or run configure with --enable-gui=no!
    testasterisk:/usr/src/packages/SOURCES/unixODBC-2.2.11 # make
    make: *** No targets specified and no makefile found.  Stop.
    testasterisk:/usr/src/packages/SOURCES/unixODBC-2.2.11 # make install
    make: *** No rule to make target `install'.  Stop.
    testasterisk:/usr/src/packages/SOURCES/unixODBC-2.2.11 #
    
    lg Dani
     
  18. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
  19. britzelfix

    britzelfix Gesperrt

    Registriert seit:
    28 Mai 2004
    Beiträge:
    1,099
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Braunschweig
    @VOIPdani

    Was Du machen sollst, steht doch explizit da:
    enweder die X-Header installieren, doer enable-gui=no angeben.

    Was macht das schon. Oracle ist doch 'eh kostenpflichtig. :)

    Übrigens ist bei Debian unixodbc als Paket schon dabei. Ich vermute aber,
    daß Du explizit ein odbc-oracle Paket brauchst.


    Gruß
    britzelfix
     
  20. HaaP

    HaaP Neuer User

    Registriert seit:
    16 Apr. 2007
    Beiträge:
    36
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Software & Systementwickler
    Oracle mit Asterisk 1.4

    Hallo voip freunde!

    Ich bin derzeit dabei, einen Asterisk 1.4 Server aufzusetzen. Desweiteren möchte ich eine Datenbankanbindung mittels Oracle schaffen. Hat jemand in diesem Thema erfahrung. Ist es überhaupst möglich?

    Mein aktueller Stand sieht so aus: Asterisk läuft einwandfrei auf einem Fedora Core 6. Um eine Verbindung zur DB zu schaffen, habe ich unixODBC installiert und entsprechend konfiguriert (Oracle Database 10g Express Edition).

    Mein erstes Ziel ist es nun, die CDR's (cdr_odbc.conf) in die Datenbank zu schreiben.

    Wenn ich meinen log file betrachte scheint alles zu funktionieren:

    Code:
    [May  8 09:31:40] VERBOSE[5215] logger.c:   == Parsing '/etc/asterisk/cdr_odbc.conf': [May  8 09:31:40] VERBOSE[5215] logger.c: Found
    [May  8 09:31:40] VERBOSE[5215] logger.c:     -- cdr_odbc: dsn is asterisk
    [May  8 09:31:40] VERBOSE[5215] logger.c:     -- cdr_odbc: username is asterisk
    [May  8 09:31:40] VERBOSE[5215] logger.c:     -- cdr_odbc: password is [secret]
    [May  8 09:31:40] VERBOSE[5215] logger.c:     -- cdr_odbc: table is CDR
    [May  8 09:31:41] VERBOSE[5215] logger.c:        > cdr_odbc: Connected to asterisk
    
    Nur wenn jetzt ein Telefonat zwischen 2 SIP useren erfolgt, erscheint beim Beenden des Gesprächs folgender Text in der CLI:
    Code:
    [May  8 10:53:00] VERBOSE[5655] logger.c:        > cdr_odbc: Error in Query -1
    [May  8 10:53:00] VERBOSE[5655] logger.c:        > cdr_odbc: Query FAILED Call not logged!
    [May  8 10:53:00] VERBOSE[5655] logger.c:        > cdr_odbc: Reconnecting to dsn asterisk
    [May  8 10:53:00] ERROR[5605] chan_sip.c: We could NOT get the channel lock for SIP/2000-097532f8! 
    [May  8 10:53:00] ERROR[5605] chan_sip.c: SIP transaction failed: 33039840-D520-47A5-AC7A-A25FF86659FA@172.21.2.105 
    [May  8 10:53:00] VERBOSE[5655] logger.c:        > cdr_odbc: Connected to asterisk
    [May  8 10:53:00] VERBOSE[5655] logger.c:        > cdr_odbc: Trying Query again!
    [May  8 10:53:00] VERBOSE[5655] logger.c:        > cdr_odbc: Error in Query -2
    [May  8 10:53:01] VERBOSE[5655] logger.c:        > cdr_odbc: Query FAILED Call not logged!
    
    Ich denke, dass die Verbindung zwischen der Datenbank und des Asterisk Servers funktioniert, Probleme hingegen gibt es beim Ausführen der query's!
    Vielleicht ist die Syntax für die Oracle DB nicht versändlich?! Gibt es eventuell irgendwelche "addons" für Oracle + Asterisk

    Falls jemand es geschafft hat oder jemanden das Problem bekannt ist, wäre ich sehr dankbar wenn mir jemand weiterhelfen könnte! :(