[asterisk-bugs] [JIRA] (ASTERISK-25281) PJSIP, ODBC and Oracle - case sensitive field name checks in sorcery break Oracle compatibility

Walter Doekes (JIRA) noreply at issues.asterisk.org
Wed Jun 15 15:58:56 CDT 2016


    [ https://issues.asterisk.org/jira/browse/ASTERISK-25281?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=231040#comment-231040 ] 

Walter Doekes commented on ASTERISK-25281:
------------------------------------------

Okay, perhaps not.

{quote}
Of course, once a table or a column is created with a case-sensitive name, it can be hard to break free, as you're discovering--you can't just alter the table and rename the column, as your existing code will break. (transactionid is equal to "TRANSACTIONID", but not "TransactionID".) So if you're not willing to go through your entire codebase to fix the case-sensitivity (and most of us don't have time to), you're going to have to get used to putting quotes on the things that need it.
{quote}

That would become a problem.

> PJSIP, ODBC and Oracle - case sensitive field name checks in sorcery break Oracle compatibility
> -----------------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-25281
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25281
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_pjsip, Channels/chan_sip/General, Core/Sorcery, Resources/res_odbc
>    Affects Versions: 13.4.0, 13.5.0, 13.6.0, 13.7.0
>         Environment: any debian x64 with odbc configured. 
> all configrations was done in accordance with document 
> https://wiki.asterisk.org/wiki/display/AST/Setting+up+PJSIP+Realtime
>            Reporter: HZMI8gkCvPpom0tM
>            Assignee: Unassigned
>
> Look like that pjsip funtionality completely broken in case of obdc driver used. 
> After configuration like discribed in https://wiki.asterisk.org/wiki/display/AST/Setting+up+PJSIP+Realtime 
> after loading asterisk 
> {code}
> vpbxdev*CLI> odbc show
> ODBC DSN Settings
> -----------------
>   Name:   VPBXORACLE
>   DSN:    sqlrelay
>     Last connection attempt: 1970-01-01 01:00:00
>   Pooled: No
>   Connected: Yes
> {code}
> {code}
> *vpbxdev*CLI> pjsip show endpoints 
> No objects found.*
> {code}
> {noformat}
> [2015-07-28 10:52:51.740] DEBUG[11310]: res_config_odbc.c:113 custom_prepare: Skip: 0; SQL: SELECT * FROM ps_endpoints WHERE id LIKE ? ORDER BY id
> [2015-07-28 10:52:51.740] DEBUG[11310]: res_config_odbc.c:129 custom_prepare: Parameter 1 ('id LIKE') = '%'
> [2015-07-28 10:52:51.754] DEBUG[11310]: res_odbc.c:1057 odbc_release_obj2: odbc_release_obj2(0x1cda0c8) called (obj->txf = (nil))
> [2015-07-28 10:52:51.755] DEBUG[11310]: res_sorcery_realtime.c:119 sorcery_realtime_filter_objectset: Filtering out realtime field 'ID' from retrieval
> [2015-07-28 10:52:51.755] DEBUG[11310]: res_sorcery_realtime.c:119 sorcery_realtime_filter_objectset: Filtering out realtime field 'TRANSPORT' from retrieval
> [2015-07-28 10:52:51.755] DEBUG[11310]: res_sorcery_realtime.c:119 sorcery_realtime_filter_objectset: Filtering out realtime field 'AORS' from retrieval
> [2015-07-28 10:52:51.755] DEBUG[11310]: res_sorcery_realtime.c:119 sorcery_realtime_filter_objectset: Filtering out realtime field 'AUTH' from retrieval
> [2015-07-28 10:52:51.755] DEBUG[11310]: res_sorcery_realtime.c:119 sorcery_realtime_filter_objectset: Filtering out realtime field 'CONTEXT' from retrieval
> [2015-07-28 10:52:51.755] DEBUG[11310]: res_sorcery_realtime.c:119 sorcery_realtime_filter_objectset: Filtering out realtime field 'DISALLOW' from retrieval
> [2015-07-28 10:52:51.755] DEBUG[11310]: res_sorcery_realtime.c:119 sorcery_realtime_filter_objectset: Filtering out realtime field 'ALLOW' from retrieval
> [2015-07-28 10:52:51.755] DEBUG[11310]: res_sorcery_realtime.c:119 sorcery_realtime_filter_objectset: Filtering out realtime field 'DIRECT_MEDIA' from retrieval
> {noformat}
> If i do manually same query using isql (odbc) i get data . So all created ok inside tables. 
> SQL>  SELECT * FROM ps_endpoints WHERE id LIKE '%' ORDER BY id
> .....
>  9990..... transport-udp| 999.....| 999000.....| customers| all     | alaw | no          |  
> ....
> SQLRowCount returns 0
> 1 rows fetched
> contents of file sorcery.conf 
> {code}
> [res_pjsip]
> endpoint=realtime,ps_endpoints
> auth=realtime,ps_auths
> aor=realtime,ps_aors
> domain_alias=realtime,ps_domain_aliases
> contact=realtime,ps_contacts
> [res_pjsip_endpoint_identifier_ip]
> identify=realtime,ps_endpoint_id_ips
> {code}
> contents of extconfig.conf
> {code}
> [settings]
> ps_endpoints => odbc,VPBXORACLE
> ps_auths => odbc,VPBXORACLE
> ps_aors => odbc,VPBXORACLE
> ps_domain_aliases => odbc,VPBXORACLE
> ps_endpoint_id_ips => odbc,VPBXORACLE
> ps_contacts => odbc,VPBXORACLE
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list