На старте имеем Asterisk + MySQL
cdr_mysql.conf имеет следующий вид:
hostname=localhost
dbname=asterisk
table=cdr
password=password
user=asterisk
port=3306
в extensions.conf на соответствующий диалплан есть следующие записи:
exten=>_9810.,1,MYSQL(Connetc connid localhost)
.......
exten=>h,1,MYSQL(Disconnect ${CONNID})
но при любом звонке в лог "вываливается" следующие:
== Using UDPTL TOS bits 184
== Using UDPTL CoS mark 5
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [114@local:1] Dial("SIP/121-00000012", "SIP/114,60,rtT") in new stack
== Using UDPTL TOS bits 184
== Using UDPTL CoS mark 5
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Called 114
-- SIP/114-00000013 is ringing
-- SIP/114-00000013 answered SIP/121-00000012
-- Locally bridging SIP/121-00000012 and SIP/114-00000013
-- Executing [h@local:1] MYSQL("SIP/121-00000012", "Disconnect ") in new stack
[Dec 3 15:23:03] WARNING[18444]: app_mysql.c:191 find_identifier: Identifier 0, identifier_type 1 not found in identifier list
[Dec 3 15:23:03] WARNING[18444]: app_mysql.c:524 aMYSQL_disconnect: Invalid connection identifier 0 passed in aMYSQL_disconnect
== Spawn extension (local, 114, 1) exited non-zero on 'SIP/121-00000012'
а еще лучше используйте realtime. тогда не надо следить за коннектами и пулом коннектов. в extconfig.conf
tablename=> mysql,tablename
дальше зависит от версии астриска. в даилплане 1.4
;REALTIME(family,fieldmatch,value,field)
extension => _X.,n,Set(res=${REALTIME(tablename,key,1,value)})
в 1.8 все еще проще. там есть функция REALTIME_FIELD и REALTIME_HASH чтоб взять всю строчку.
1.6.х никому использовать не рекомендую вообще.
Синтаксис прост до безумия
MYSQL(Connect connid dhhost dbuser dbpass dbname)
в вашем случае
MYSQL(Connect connid localhost asterisk password asterisk)
Дальше работаем с курсором подключения
MYSQL(Query resultid ${connid} SELECT `search` FROM asterisk.table WHERE `col`='${VAL}')
Потом обрабатываем присвоенное значение переменной resultid
MYSQL(Fetch fetchid ${resultid} RESULT)
в итоге результат видим в переменной RESULT
Задан: Dec 3 '11
Просмотрен: 1,218 раз
Обновлен: Dec 04 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Что за бред у вас в диаплане? Какое отношение имеет cdr_mysql и MYSQL(Connetc connid localhost) ?
zzuz (Dec 3 '11)editКонкретнее пожалуйста, может быть чегото не понимаю. Сейчас избавился от проблемы конечно.
Lunx (Dec 3 '11)edit