Cursos Asterisk en México

Ayuda ODBC

Colapsar

Anuncio

Colapsar
No hay anuncio todavía.
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Ayuda ODBC

    Buen dia a todos hace poco que me eh suscrito a el foro a sido de bastante utilidad y de antemano les agradezco su atencion.
    El tema que tengo es que estoy probando ODBC, Logro hacer Lectura de datos con la funcion "readsql" en el func_odbc.conf, pero al momento de hacer un INSERT con "writesql o insertsql "me manda el siguiente error
    Código:
      == Using SIP RTP CoS mark 5
        -- Executing [1@from-internal:1] Answer("SIP/9006-00000002", "") in new stack
           > 0x7f1b70014fe0 -- Probation passed - setting RTP source address to 192.168.10.98:7806
        -- Executing [1@from-internal:2] Set("SIP/9006-00000002", "date=2017-06-30") in new stack
    [U][Jun 30 10:58:28] ERROR[3570][C-00000002]: pbx.c:4360 ast_func_read: Function ODBC_primero cannot be read[/U]
        -- Executing [1@from-internal:3] Set("SIP/9006-00000002", "query=") in new stack
        -- Executing [1@from-internal:4] NoOp("SIP/9006-00000002", "") in new stack
        -- Executing [1@from-internal:5] Hangup("SIP/9006-00000002", "16") in new stack
      == Spawn extension (from-internal, 1, 5) exited non-zero on 'SIP/9006-00000002'
    Estos son mis archivos de configuracion:

    Archivo /etc/asterisk/extensions.conf

    [odbc]
    exten => _1,1,Answer
    exten => _1,n,Set(date=${STRFTIME(${EPOCH},,%C%y-%m-%d)})
    exten => _1,n,Set(query=${ODBC_primero(${date})})
    exten => _1,n,NoOp(${query})
    exten => _1,n,Hangup()

    Archivo /etc/asterisk/func_odbc.conf

    [primero]
    dsn=llamaditas
    writesql=INSERT INTO marcacion ('fecha', 'origen', 'numero') VALUES ('${SQL_ESC(${VAL1})}','1234','1234567890')

    Archivo /etc/asterisk/res_odbc.conf

    [llamaditas]
    enabled=>yes
    dsn=>llamadas-connector
    username=>root
    password=>S1st3m4sr3l04D
    pooling=>no; no
    limit=>1
    pre-connect=>yes

    Archivo /etc/asterisk/odbc.ini

    [llamadas-connector]
    Description = Primer OBDC Rules
    Driver = MySQL
    Database = llamadas
    Password = S1st3m4sr3l04D
    Server = localhost
    Port = 3306
    Socket = /var/lib/mysql/mysql.sock

    Esperando su valiosa ayuda , Agradezco su atencion y me pongo a sus servicios

    Saludos

  • #2
    El error es bastante claro: estás tratando de usar la función de ODBC en lectura cuando lo que tienes definido es escritura.

    Reemplaza tu línea:

    exten => _1,n,Set(query=${ODBC_primero(${date})})

    por esto

    exten => _1,n,Set(ODBC_primero()=${date})
    dCAP Christian Cabrera R.
    Para aprender a usar Asterisk, asiste a uno de mis cursos Asterisk
    Si deseas asesoría pagada, por favor contáctame

    Comentario


    • #3
      Saludos...
      realize algunos cambios incluyendo donde tenia el error y funciono a la perfeccion, muchas gracias Christian.
      Anexo como quedo, aun tengo un detalle y es que no se me ocurre como saber el estaus de llamada... estuve pensando volver a utilizar odbc pero con una especie de join contra CEL.

      OUT_3 = @Monterrey
      PREFIX_CEL = 0074521
      Archivo Extensions.conf
      [Celular]
      exten => _XXXXXXXXXX,1,Answer
      exten => _XXXXXXXXXX,n,Set(date=${STRFTIME(${EPOCH},,%C%y-%m-%d %H:%M:%S)})
      exten => _XXXXXXXXXX,n,Set(calltime=${STRFTIME(${EPOCH},,%C %y-%m-%d_%H%M%S)})
      exten => _XXXXXXXXXX,n,Set(daterec=${STRFTIME(${EPOCH},,%C% y/%m/%d)})
      exten => _XXXXXXXXXX,n,Set(recname=${EXTEN}_${calltime}_${U NIQUEID}_Prepago.wav)
      exten => _XXXXXXXXXX,n,MixMonitor(/var/spool/asterisk/monitor/${daterec}/${recname})
      exten => _XXXXXXXXXX,n,Set(ODBC_prepago()=${date},${EXTEN}, ${recname})
      exten => _XXXXXXXXXX,n,Dial(SIP/${PREFIX_CEL}${EXTEN}${OUT_3},15,Trt)
      exten => _XXXXXXXXXX,n,Hangup(16)

      Archivo func_odbc.conf
      [prepago]
      dsn=reportes
      writesql=INSERT INTO `prepago` (`fecha`, `destino`, `estatus`, `grabacion`) VALUES ('${SQL_ESC(${VAL1})}','${SQL_ESC(${VAL2})}', 'aqui_va_el_estatus', '${SQL_ESC(${VAL3})}')
      Tal vez a alguien le sirva de apoyo o guia

      Muchas gracias de nuevo por el apoyo



      Comentario

      Principales Usuarios Activos

      Colapsar

      No hay usuarios activos superiores.
      Trabajando...
      X