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

Ошибка при работе с 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' 
удалить закрыть спам изменить тег редактировать

спросил 2011-12-03 15:52:35 +0400

Lunx Gravatar Lunx
40 ● 4 ● 7

обновил 2011-12-03 15:53:19 +0400

Comments

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

zzuz ( 2011-12-03 17:03:45 +0400 )редактировать

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

Lunx ( 2011-12-03 18:26:35 +0400 )редактировать

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

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

ответил 2011-12-04 10:23:12 +0400

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

обновил 2011-12-04 10:25:18 +0400

Comments

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

zzuz ( 2011-12-04 17:10:36 +0400 )редактировать

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

meral ( 2011-12-05 11:19:03 +0400 )редактировать

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

zzuz ( 2011-12-05 11:21:51 +0400 )редактировать

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

meral ( 2011-12-05 14:39:57 +0400 )редактировать

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

zzuz ( 2011-12-05 14:57:47 +0400 )редактировать
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

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

ответил 2011-12-03 17:08:08 +0400

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

обновил 2011-12-03 17:10:55 +0400

Comments

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

Lunx ( 2011-12-03 18:18:30 +0400 )редактировать

Требуется .

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

MYSQL(Clear ${resultid}) MYSQL(Disconnect ${connid} 
zzuz ( 2011-12-03 19:21:25 +0400 )редактировать

Ваш ответ

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 ленту новостей

Статистика

Задан: 2011-12-03 15:52:35 +0400

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

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

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