First time here? Check out the FAQ!

Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Ошибка при работе с MySQL

0

На старте имеем 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'

спросил Dec 3 '11

Lunx Gravatar Lunx
40 4 7

обновил Dec 3 '11

Comments

Что за бред у вас в диаплане? Какое отношение имеет cdr_mysql и MYSQL(Connetc connid localhost) ?

zzuz (Dec 3 '11)edit

Конкретнее пожалуйста, может быть чегото не понимаю. Сейчас избавился от проблемы конечно.

Lunx (Dec 3 '11)edit

2 Ответа

1

а еще лучше используйте 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.х никому использовать не рекомендую вообще.

http://www.voip-info.org/wiki/view/Asterisk+func+realtime

ссылка удалить спам редактировать

ответил Dec 4 '11

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил Dec 4 '11

Comments

А что делать если БД , к которой обращается диаплан - кастомный. К примеру сторонняя БД с билингом. реалтайм тогда тут вообще не причем.

zzuz (Dec 4 '11)edit

почему? реалтаймом можно довольно сложные запросы выдавать. ну правда желателен все же скил в sql.

meral (Dec 5 '11)edit

Один фиг , трюки с AGI практичней будут.

zzuz (Dec 5 '11)edit

agi вобще лучше не использовать. fastAGI еще более менее.

meral (Dec 5 '11)edit

Ну . впринципе , поддерживаю . Мы просто всегда , когда говорим про AGI , имеем ввиду fastAGI и самописный враппер для его обработки.

zzuz (Dec 5 '11)edit
1

Синтаксис прост до безумия

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

zzuz Gravatar zzuz flag of Russian Federation
7174 2 6 75
http://line24.ru/

обновил Dec 3 '11

Comments

То есть строка exten=>h,1,MYSQL(Disconnect ${CONNID}) не требуеться ?

Lunx (Dec 3 '11)edit

Требуется .

лучше еще так делать

MYSQL(Clear ${resultid})
MYSQL
(Disconnect ${connid}
zzuz (Dec 3 '11)edit

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: Dec 3 '11

Просмотрен: 1,218 раз

Обновлен: Dec 04 '11

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.