Discussion:
[asterisk-users] Asterisk realtime in combination with ARI - error while trying to prepare SQL statement for writing into database
Floimair Florian
2017-07-13 13:01:44 UTC
Permalink
Hey guys!

I successfully got Asterisk realtime (14.6.0) with MariaDB (MySQL fork) running on Debian 9.

I will document the steps to do so shortly (the main difference is default encoding and the odbc connector & its configuration).

What I’m trying to do now is to use ARI to create PJSIP endpoints as outlined in this wiki article:
https://wiki.asterisk.org/wiki/display/AST/ARI+Push+Configuration

So far so good. Excecuting the examples using curl PUT aor and auth was working fine, when I ran the line for the endpoint object I got an error in the Asterisk CLI and log stating:

res_config_odbc.c: SQL Prepare failed! [INSERT INTO ps_endpoints (id, rpid_immediate, device_state_busy_at, t38_udptl_maxdatagram, dtls_rekey, named_pickup_group, direct_media_method, send_rpid, pickup_group, sdp_session, dtls_verify, message_context, mailboxes, record_on_feature, dtls_private_key, dtls_fingerprint, from_domain, timers_sess_expires, named_call_group, dtls_cipher, media_encryption_optimistic, aors, identify_by, callerid_privacy, mwi_subscribe_replaces_unsolicited, cos_audio, context, rtp_symmetric, transport, moh_suggest, t38_udptl, fax_detect, tos_video, srtp_tag_32, use_avpf, call_group, fax_detect_timeout, sdp_owner, force_rport, callerid_tag, rtp_timeout_hold, use_ptime, media_address, voicemail_extension, rtp_timeout, set_var, contact_acl, force_avp, record_off_feature, from_user, send_diversion, t38_udptl_ipv6, tone_zone, language, allow_subscribe, rtp_ipv6, callerid, moh_passthrough, cos_video, asymmetric_rtp_codec, ice_support, aggregate_mwi, one_touch_recording, mwi_from_user, accountcode, allow, rewrite_contact, user_eq_phone, rtp_engine, subscribe_context, auth, direct_media_glare_mitigation, trust_id_inbound, bind_rtp_to_media_address, disable_direct_media_on_nat, media_encryption, media_use_received_transport, allow_overlap, dtmf_mode, outbound_auth, tos_audio, dtls_cert_file, dtls_ca_path, dtls_setup, connected_line_method, g726_non_standard, 100rel, timers, direct_media, acl, timers_min_se, trust_id_outbound, sub_min_expiry, rtcp_mux, send_pai, rtp_keepalive, t38_udptl_ec, t38_udptl_nat, allow_transfer, dtls_ca_file, outbound_proxy, inband_progress) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]

Carefully comparing the attributes from the JSON output of the curl statement (which was successfully completed) and the columns in the database I found the culprit:

The database is missing the following attribute: „dtls_fingerprint“
I prepared my database using the alembic scripts from the 14.6.0 source. After manually adding the column to the database and restarting Asterisk the statement was successfully executed and everything works fine now.

In addition to the missing attribute there are few columns in the database table that do not match to a JSON attribute in the pjsip endpoint object.
These are:

- contact_deny

- contact_permit

- contact_user

- deny

- disallow

- external_media_address

- permit

- redirect_method


So far to my findings.

Should I file a bug-report for this?


With best regards

Florian Floimair
Joshua Colp
2017-07-13 13:36:43 UTC
Permalink
Post by Floimair Florian
Hey guys!
I successfully got Asterisk realtime (14.6.0) with MariaDB (MySQL fork)
running on Debian 9.
I will document the steps to do so shortly (the main difference is
default encoding and the odbc connector & its configuration).
What I’m trying to do now is to use ARI to create PJSIP endpoints as
https://wiki.asterisk.org/wiki/display/AST/ARI+Push+Configuration
So far so good. Excecuting the examples using curl PUT aor and auth was
working fine, when I ran the line for the endpoint object I got an error
<snip>
Post by Floimair Florian
Carefully comparing the attributes from the JSON output of the curl
statement (which was successfully completed) and the columns in the
The database is missing the following attribute: „dtls_fingerprint“
I prepared my database using the alembic scripts from the 14.6.0 source.
After manually adding the column to the database and restarting Asterisk
the statement was successfully executed and everything works fine now.
In addition to the missing attribute there are few columns in the
database table that do not match to a JSON attribute in the pjsip
endpoint object.
- contact_deny
- contact_permit
- contact_user
- deny
- disallow
- external_media_address
- permit
- redirect_method
So far to my findings.
Should I file a bug-report for this?
Yes, an issue should be reported for this.
--
Joshua Colp
Digium, Inc. | Senior Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - US
Check us out at: www.digium.com & www.asterisk.org
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-us
Loading...