StackExchange の最初の投稿 - 簡単に行ってください :)
Asterisk インストールから ms-sql クエリを実行するために、Centos 6 で ODBC をセットアップしました。
私の構成ファイルは次のとおりです。
/etc/odbc.ini
[asterisk-connector]
Description = MS SQL connection to 'asterisk' database
Driver = /usr/lib64/libtdsodbc.so
Setup = /usr/lib64/libtdsS.so
Servername = SQL2
Port = 1433
Username = MyUsername
Password = MyPassword
TDS_Version = 7.0
/etc/odbcinst.ini
[odbc-test]
Description = TDS connection
Driver = /usr/lib64/libtdsodbc.so
Setup = /usr/lib64/libtdsS.so
UsageCount = 1
FileUsage = 1
/etc/アスタリスク/res_odbc.conf
[asterisk-connector]
enabled => yes
dsn => asterisk-connector
username => MyUsername
password => MyPassword
pooling => no
limit =>
pre-connect => yes
パスワードとユーザー名を渡すと、ISQL 経由で接続できます。
[root@TestVM etc]# isql -v asterisk-connector MyUsername MyPassword
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
..しかし、ユーザー名/パスワードなしで接続できるはずです。返されるのは次のとおりです。
[root@TestVM etc]# isql -v asterisk-connector
[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source
[01000][unixODBC][FreeTDS][SQL Server]Adaptive Server connection failed
[ISQL]ERROR: Could not SQLConnect
これは、ISQL が構成ファイルからユーザー名とパスワードを読み取ることができないかのようです。
Asterisk ダイヤルプラン内から MS-SQL ルックアップを実行できるようにする必要がありますが、そのためには、データ ソース名だけで ISQL を呼び出せる必要があり、認証パラメーターを渡すことはできません。
私がオンラインで読んだすべてのガイドには、
isql -v asterisk-connector
コマンドですが、それは私には起こっていません。
私はこれについて数日間髪を伸ばしてきたので、正しい方向への助けや指針をいただければ幸いです.
前もって感謝します。
編集:
ロギングをオンにしましたが、手がかりがあるかもしれません。ユーザー名とパスワードは確実に渡されていません。
[ODBC][27557][1455205133.129690][SQLConnect.c][3614]
Entry:
Connection = 0xac3080
Server Name = [asterisk-connector][length = 18 (SQL_NTS)]
User Name = [NULL]
Authentication = [NULL]
UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE 'UCS-2LE'
DIAG [01000] [FreeTDS][SQL Server]Adaptive Server connection failed
DIAG [S1000] [FreeTDS][SQL Server]Unable to connect to data source
したがって、ここのユーザー名と認証は [NULL] です。明らかに odbc.ini または res_odbc.conf でユーザー名/パスワードを取得していませんが、問題はその理由です。私は調査を続けます:)
編集2:
OSQL ユーティリティは次を返します。
[root@TestVM etc]# osql -S SQL2 -U MyUsername -P MyPassword
checking shared odbc libraries linked to isql for default directories...
strings: '': No such file
trying /tmp/sqlH ... no
trying /tmp/sqlL ... no
trying /etc ... OK
checking odbc.ini files
reading /root/.odbc.ini
[SQL2] not found in /root/.odbc.ini
reading /etc/odbc.ini
[SQL2] found in /etc/odbc.ini
found this section:
looking for driver for DSN [SQL2] in /etc/odbc.ini
no driver mentioned for [SQL2] in odbc.ini
looking for driver for DSN [default] in /etc/odbc.ini
osql: error: no driver found for [SQL2] in odbc.ini